为了示例起见,我将其简短了。
import json
info = '''
{
"people":
{
"rick":
{
"age": 24
}
}
}
'''
data = json.loads(info)
以下代码输出: rick (这是我所期望的)
for person in data["people"]:
print(person)
在以下代码中,我期望得到输出: 24
for person in data["people"]:
print(person["age"])
但是我却得到: TypeError:字符串索引必须是整数
据我了解,这意味着 rick 已转换为字符串,不再是字典,如果是这样,输出 24的正确方法是什么?
谢谢
答案 0 :(得分:1)
您需要遍历内部字典的values
。 data["people"]
本身就是字典。
for person in data["people"].values():
print(person["age"])
# 24
答案 1 :(得分:1)
默认情况下,对字典进行迭代会对其键进行迭代,因此person
是一个字符串,即键的名称。您可以将第二个for循环更改为:
for person in data['people'].values():
print(person['age'])
dict.values()
产生包含的值,此处为字典。另外,您可能会对dict.items()
感兴趣:
for name, person in data['people'].items():
print(name, person['age'])
# rick, 24
第一个元素是键(名称),第二个元素是关联值(字典)。
答案 2 :(得分:1)
或者您可以使用键值对:
for person,value in info["people"].items():
print(value["age"])