我有一个包含JSON数据的文件,如下所示:
{
"Results": [
{"Id": "001",
"Name": "Bob",
"Items": {
"Cars": "1",
"Books": "3",
"Phones": "1"}
},
{"Id": "002",
"Name": "Tom",
"Items": {
"Cars": "1",
"Books": "3",
"Phones": "1"}
},
{"Id": "003",
"Name": "Sally",
"Items": {
"Cars": "1",
"Books": "3",
"Phones": "1"}
}]
}
我不知道如何正确地循环JSON。我想循环遍历数据,并得到数据集中每个成员的Cars名称。我怎样才能做到这一点?
import json
with open('data.json') as data_file:
data = json.load(data_file)
print data["Results"][0]["Name"] # Gives me a name for the first entry
print data["Results"][0]["Items"]["Cars"] # Gives me the number of cars for the first entry
我试着用以下方法循环它们:
for i in data["Results"]:
print data["Results"][i]["Name"]
但收到一个错误: 类型错误:列表索引必须是整数,而不是dict
混淆的是词典和列表在迭代中的使用方式。 字典将遍历它的键(用作索引以获取相应的值)
但是遍历列表的默认行为将为您提供元素而不是索引:
如果要将程序泛化为处理这两种类型,可以使用以下函数之一:
例如,如果您后来更改了json以使用id作为键将结果存储在dict中,那么程序仍将以相同的方式遍历它:
您正在遍历字典而不是索引,因此应该使用。
或者
假设
i
是索引,但它是字典,请使用:引用for Statements:
相关问题 更多 >
编程相关推荐