无法在python中解析某些JSON

时间:2019-02-08 10:20:01

标签: python json

我正在尝试从https://mtgjson.com/json/AllCards.json解析一些JSON数据,但是我不确定如何处理其结构化方式。这是我的代码段:

cards = json.loads(open("AllCards.json", encoding="utf8").read())
for card in cards:
    print(card)

我期望“ card”是一个字典,然后可以用来访问属性,例如“ card ['name']”。但是,在这种情况下,所有“卡”都是包含键值的字符串,因此我无法使用它来访问任何嵌套属性。但是,如果我打印“卡片”,它将输出包括所有嵌套属性的整个JSON文档。

我还尝试使用卡[0]访问它们,但这给了我一个关键错误。

我在这里显然缺少了一些东西,但我不知道是什么。

1 个答案:

答案 0 :(得分:2)

默认情况下,迭代字典将迭代其键。

如果您还想要这些值,则应迭代dict.items()

import json
cards = json.loads(open("AllCards.json", encoding="utf8").read())
for key, value in cards.items():
    print(key, value)

value将包含子命令。

相同
import json
cards = json.loads(open("AllCards.json", encoding="utf8").read())
for key in cards:
    print(key, cards[key])

如果您不关心键,则可以直接迭代值:

import json
cards = json.loads(open("AllCards.json", encoding="utf8").read())
for card in cards.values():
    print(card)