web-dev-qa-db-ja.com

プリティJSONを出力python

jSONをきれいに印刷することについてある程度の知識がある人がこれを手伝ってくれるなら、私はとても感謝しています!

以下の関数を使用してJSON文字列をファイルに移動して、複雑なpython文字列をJSON形式に変換します。

with open('data.txt', 'wt') as out:
    pprint(string, stream=out)

問題は、私が信じている角括弧の構文エラーを受け取っていることです。これは私にとって新しいトピックであり、これを回避する方法を理解できないからです。私が必要とするJSON形式は次のとおりです。

  {
        cols:[{id: 'Time', "label":"Time","type": "datetime"},
              {id: 'Time', "label":"Latency","type":"number"}],
        rows:[{c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}, 
              {c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}
              ]
    }

私はGoogle Visualization APIをフォローしていますが、それに慣れているかもしれませんが、動的グラフが必要です。上記のコードは、APIがグラフを作成するために必要な形式です。そのため、MYSQLからこの形式にデータを取得して、グラフを読み取って表示できるようにする方法を検討中です。私が考えた方法は、必要なJSON形式を含むファイルを定期的に更新することでした。これが%sが存在する理由ですが、MartijnPetersはこれが無効であることを示唆しています。

誰かが私がこれを行うことができる最も簡単な方法を知っていますか、またはあなたが助けることができるあらゆる資料を私に指摘できますか?ありがとうございました!!

13
Tom O' Mara

JSONではなくPython表現を書いている。

代わりに json.dump() function を使用して、きれいに出力されたJSONをファイルに直接書き込みます。

with open('data.txt', 'wt') as out:
    res = json.dump(obj, out, sort_keys=True, indent=4, separators=(',', ': '))
46
Martijn Pieters