我需要通过索引从json文件中获取一个值(不是通过键)
这是我的json文件
{
"db": {
"vendor": {
"product": {
"fruits": {
"price": {
"dollars": [
10,
2
],
"euros": [
11,
1.9
],
"pesos": [
16,
15
]
}
},
"vegatables": {
"price": {
"dollars": {
"0": 8,
"1": 2
},
"euros": {
"0": 10,
"1": 1.5
},
"pesos": {
"0": 15,
"1": 12
}
}
}
}
}
}
}
我的目标-为所有“产品”获取美元、欧元和比索的价值(在这个json文件中,它仅是水果和蔬菜)
我的代码:
^{pr2}$我得到了
Traceback (most recent call last):
File "C:\\Users\\admin\\Documents\\kolos\\data\\vegs.json", line 12, in <module>
print(data["db"]["vendor"]["product"][x]["price"]["dollars"])
KeyError: 0
问题出在X变量中。如果我尝试不使用它,例如下面的代码,它可以工作。在
print(data["db"]["vendor"]["product"]["fruits"]["price"]["dollars"][0])
附言
在我的另一个程序中,我使用了类似的代码,它工作得很好
...
for x in range(lenght_of_leagues):
print(data["leagues"][x]["id"])
...
以下是一个应该有效的版本(取决于您希望它做什么):
我将dict()改为OrderedDict(),以保持原来的顺序
我将
.values()
添加到正在被编入索引的字典中。此方法返回所有字典的列表,然后可以将这些字典编入索引代码如下:
输出为:
^{pr2}$输出不同的原因是您的}的存储方式不同(一个是列表,另一个是字典)。如果你想用同样的方式重复它们。在
fruits
和{我认为输入字符串是错误的。在
JSON格式没有必须更改为的以下输入
^{pr2}$那么下面的命令就可以正常工作了
相关问题 更多 >
编程相关推荐