我有这个JSON文件,其中id的数量有时会发生变化(将添加更多id):
{
"maps": [
{
"id": "blabla1",
"iscategorical": "0"
},
{
"id": "blabla2",
"iscategorical": "0"
},
{
"id": "blabla3",
"iscategorical": "0"
},
{
"id": "blabla4",
"iscategorical": "0"
}
]
}
我有这个python代码,必须打印ids的所有值:
import json
data = json.load(open('data.json'))
variable1 = data["maps"][0]["id"]
print(variable1)
variable2 = data["maps"][1]["id"]
print(variable2)
variable3 = data["maps"][2]["id"]
print(variable3)
variable4 = data["maps"][3]["id"]
print(variable4)
我必须使用变量,因为我想在下拉菜单中显示值。是否可以以更有效的方式保存id的值?你怎么知道这个json文件的最大id(在例4中)?
答案 0 :(得分:2)
您可以通过查看id
的{{1}}来获取length
的数量(这是元素的数量):
data['maps']
获取所有number_of_ids = len(data['maps'])
值的干净方法是将它们存储在id
中。
你可以用这样的pythonic方式实现这个目的:
list
使用这种方法,您甚至不需要在原始list_of_ids = [map['id'] for map in data['maps']]
中存储元素数量,因为您基本上使用json
方法迭代所有元素。
如果pythonic方法让你感到烦恼,你可以用经典的foreach
方法实现同样的目的:
foreach
或者您可以使用经典 list_of_ids = []
for map in data['maps']:
list_of_ids.append(map['id'])
,这是您真正需要的长度:
for loop
这是最后的经典方式,但我建议您采用其他方法,以便利用python为您提供的优势!
您可以找到有关此内容的更多信息here!
快乐的编码!
答案 1 :(得分:1)
data['maps']
是一个简单的列表,因此你可以这样迭代它:
for map in data['maps']:
print(map['id'])
要将它们存储在变量中,您需要将它们输出到列表中。将它们存储在一个单独的变量中并不是一个好主意,因为就像你说的那样,你无法知道有多少变量。
ids = []
for map in data['maps']:
ids.append(map['id'])