Python を使用して JSON データをファイルにきれいに印刷する 質問する

Python を使用して JSON データをファイルにきれいに印刷する 質問する

授業の課題で、Twitter の JSON データを解析しています。データを取得してファイルに設定する作業は問題なくできていますが、すべて 1 行になっています。これは、私が行おうとしているデータ操作には適していますが、ファイルがとてつもなく読みにくく、よく調べることができないため、データ操作部分のコード記述が非常に困難になっています。

Python 内からそれを実行する方法を知っている人はいますか (つまり、動作させることができないコマンドライン ツールを使用しない)? これまでのコードは次のとおりです。

header, output = client.request(twitterRequest, method="GET", body=None,
                            headers=None, force_auth_header=True)

# now write output to a file
twitterDataFile = open("twitterData.json", "wb")
# magic happens here to make it pretty-printed
twitterDataFile.write(output)
twitterDataFile.close()

注記simplejson のドキュメントなどを紹介していただけるとありがたいのですが、前述したように、私はすでにそれを調べており、引き続き支援が必要です。本当に役立つ返信は、そこに記載されている例よりも詳細でわかりやすいものになるでしょう。ありがとう

また:Windows のコマンド ラインでこれを試します:

more twitterData.json | python -mjson.tool > twitterData-pretty.json

結果は次のようになります:

Invalid control character at: line 1 column 65535 (char 65535)

私が使用しているデータをお渡ししたいのですが、データが非常に大きく、ファイルを作成するために使用したコードはすでにご覧になっていると思います。

ベストアンサー1

オプションの引数を使用する必要がありますindent

header, output = client.request(twitterRequest, method="GET", body=None,
                            headers=None, force_auth_header=True)

# now write output to a file
with open("twitterData.json", "w") as twitterDataFile:
    # magic happens here to make it pretty-printed
    twitterDataFile.write(
        simplejson.dumps(simplejson.loads(output), indent=4, sort_keys=True)
    )

おすすめ記事