【问题标题】:How to save dict/json to file on my computer via Python [duplicate]如何通过 Python 将 dict/json 保存到我的计算机上的文件 [重复]
【发布时间】:2020-12-23 04:33:41
【问题描述】:

我有这个 API 正在尝试访问,但我似乎无法找到将所有这些数据下载到我的计算机的方法。我在网上尝试的一切都不起作用,可能是因为数据的类型仍然是dict?

谁能告诉我这是否是通过本网站汇总所有数据的正确方法,然后如何下载?谢谢

import requests
import string
import json

alphabet = list(string.ascii_lowercase)

fulltable = '{}'

fulltable = json.loads(fulltable)

for letter in alphabet:
    URL = 'https://www.thecocktaildb.com/api/json/v1/1/search.php?f=' + letter
    response = requests.get(URL)
    if response:
        print("Great success! for letter: " + letter)
    else:
        print("OI VEY! for letter: " + letter)

    json_data = response.json()

    print(json_data)
    fulltable.update(json_data)

【问题讨论】:

  • 请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已根据 CC BY-SA license 授予 SE 分发内容的不可撤销权利(即无论您未来的选择如何)。根据 SE 政策,分发非破坏版本。因此,任何破坏行为都将被撤销。请参阅:How does deleting work? …。如果允许删除,则帖子下方左侧有一个“删除”按钮,但仅在浏览器中,而不是移动应用程序中。

标签: json python-3.x download


【解决方案1】:

您已经非常接近可能的解决方案了。不幸的是,您每次更新时都会覆盖之前的结果。

import requests
import string
import json

fulltable = {}
for letter in string.ascii_lowercase:
    url = 'https://www.thecocktaildb.com/api/json/v1/1/search.php?f=' + letter
    response = requests.get(url)
    json_data = response.json()
    for k,v in json_data.items():
        if not k in fulltable:
            fulltable[k] = []
        fulltable[k] += v or []

with open('data.json', 'w') as fp:
    json.dump(fulltable, fp, indent=4, sort_keys=True)

【讨论】:

  • 啊,好的,我应该构建它有点像频率表更新器,而不是仅仅附加/更新它。谢谢楼主!
猜你喜欢
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 2018-05-17
  • 1970-01-01
相关资源
最近更新 更多