Python遍历字典的json数组

时间:2021-01-05 15:10:50

标签: python json loops python-requests

对于这个相当基本的问题,我深表歉意,但我似乎很难遍历这个 JSON 数组/字典上的键以外的任何东西。

import requests

villager_url = requests.get("https://acnhapi.com/v1/villagers")
villagers = villager_url.json()

for villager in villagers:
    print(villager)

请求的设置非常基本,现在我可以获得键的列表,但我正在努力打印出构成字典值的数组中包含的任何内容。

{
"ant00": {
"id": 1,
"file-name": "ant00",
"name": {
"name-USen": "Cyrano",
"name-EUen": "Cyrano",
"name-EUde": "Theo",
"name-EUes": "Cirano",
"name-USes": "Cirano",
"name-EUfr": "Cyrano",
"name-USfr": "Cyrano",
"name-EUit": "Cirano",
"name-EUnl": "Cyrano",
"name-CNzh": "阳明",
"name-TWzh": "陽明",
"name-JPja": "さくらじま",
"name-KRko": "사지마",
"name-EUru": "Сирано"
},
"personality": "Cranky",
"birthday-string": "March 9th",
"birthday": "9/3",
"species": "Anteater",
"gender": "Male",
"subtype": "B",
"hobby": "Education",
"catch-phrase": "ah-CHOO",
"icon_uri": "https://acnhapi.com/v1/icons/villagers/1",
"image_uri": "https://acnhapi.com/v1/images/villagers/1",
"bubble-color": "#194c89",
"text-color": "#fffad4",
"saying": "Don't punch your nose to spite your face.",
"catch-translations": {
"catch-USen": "ah-CHOO",
"catch-EUen": "ah-CHOO",
"catch-EUde": "schneuf",
"catch-EUes": "achús",
"catch-USes": "achús",
"catch-EUfr": "ATCHOUM",
"catch-USfr": "ATCHOUM",
"catch-EUit": "ett-CCIÙ",
"catch-EUnl": "ha-TSJOE",
"catch-CNzh": "有的",
"catch-TWzh": "有的",
"catch-JPja": "でごわす",
"catch-KRko": "임돠",
"catch-EUru": "апчхи"
}
}
}

上面是前两个键值对的json。我只是想能够返回一个埋在字典值部分中的值。我主要希望返回诸如 name-USen 之类的东西,或者可能是来自值的一对数据,最终目标是拥有一个基本的 Web 应用程序,它会像您一样输入生日并与村民或类似的东西配对。我敢肯定,这对你们中的很多人来说是没有道理的,所以我道歉。提前致谢。

1 个答案:

答案 0 :(得分:1)

也许是为了帮助你:

import requests

villager_url = requests.get("https://acnhapi.com/v1/villagers")
villagers = villager_url.json()

dct = {villagers[k]["name"]["name-EUen"]:villagers[k]["birthday-string"] for k in villagers.keys()}

print(dct)