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

How to download text as a .json file in python using the requests library

本问题已经有最佳答案,请猛点这里访问。

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

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

r.json()

只要它在命令行界面中吐出相关信息,就可以工作,但是我真正想做的是将数据保存到我的计算机上,最好是以.json格式。我在网上找到的大多数解决方案都是使用"请求"模块从Internet下载直接图像或网页,但在将文本转换为文件然后下载时却无能为力。

希望这里的人能给我指明正确的方向,帮助我,或者更糟的是,告诉我这根本不可能。如果需要澄清,请通知我!

谢谢!!


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

1
2
import json
json_str = json.dumps(r.json())

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

1
2
with open(filename, 'w') as f:
    f.write(json_str)

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

1
2
with open(filename, 'w') as f:
    f.write(r.text)