如何使用 requests 库在 python 中将文本下载为 .json 文件

Rut*_*s99 2 python json python-3.x python-requests

我正在尝试使用 API(尤其是公司 API)并设法使其工作到可以使用命令行向 API 网站发出请求并返回数据的程度,我使用以下代码执行此操作:

r = requests.get('https://api.companieshouse.gov.uk/company/**COMPANY NUMBER**/filing-history', auth=('**AUTH CODE**', ''))

r.json()
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为它会在命令行界面中输出相关信息,但我真正想做的是将这些数据保存到我的计算机上,最好以 .json 格式保存。我在网上找到的大多数解决方案都涉及使用请求模块从互联网下载直接图像或网页,但在将文本转换为文件然后下载时无济于事。

希望这里有人能指出我正确的方向并帮助我,或者更糟糕的是,告诉我这是不可能的。如果您需要任何说明,请告诉我!

谢谢!!

Pav*_*kov 5

您可以像这样从 JSON 中创建一个字符串:

import json
json_str = json.dumps(r.json())
Run Code Online (Sandbox Code Playgroud)

然后使用标准方法将其保存为常规文本文件。

with open(filename, 'w') as f:
    f.write(json_str)
Run Code Online (Sandbox Code Playgroud)

编辑:正如@Tomalak 的评论中指出的,这段代码进行了双重转换,这显然在这里不需要。所以你可以

with open(filename, 'w') as f:
    f.write(r.text)
Run Code Online (Sandbox Code Playgroud)

  • Pavel:HTTP 为您提供文本。当您调用“r.json()”时,其内部执行的是“json.loads(r.text)”。所以你的答案建议是“json_str = json.dumps(json.loads(r.text))”,这是不必要的。“f.write(t.text)”怎么样? (4认同)