一尘不染

使用Python将JSON数据漂亮地打印到文件中

json

用于类的项目涉及解析Twitter
JSON数据。我正在获取数据并将其设置为文件没有太大的麻烦,但这全都在一行中。这对我要进行的数据操作很好,但是文件很难读取,而且我无法很好地对其进行检查,这使得为数据操作编写代码非常困难。

有谁知道如何在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)

我会给您我正在使用的数据,但是它非常大,您已经看到了我用来制作文件的代码。


阅读 241

收藏
2020-07-27

共1个答案

一尘不染

您应该使用可选参数indent

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", "w")
# magic happens here to make it pretty-printed
twitterDataFile.write(simplejson.dumps(simplejson.loads(output), indent=4, sort_keys=True))
twitterDataFile.close()
2020-07-27