解析Json文件并保存特定值

2024-04-26 23:40:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON文件,其中id的数量有时会发生变化(会添加更多的id):

{
    "maps": [
        {
            "id": "blabla1",
            "iscategorical": "0"
        },
        {
            "id": "blabla2",
            "iscategorical": "0"
        },
        {
            "id": "blabla3",
            "iscategorical": "0"
        },
        {
            "id": "blabla4",
            "iscategorical": "0"
        }
    ]
}

我有一个python代码,它必须打印id的所有值:

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数量(在de示例4中)?你知道吗


Tags: 文件idjsondata数量mapsprintvariable1
2条回答

data['maps']是一个简单的列表,因此您可以这样迭代它:

for map in data['maps']:
    print(map['id'])

要将它们存储在变量中,需要将它们输出到列表中。将它们分别存储在一个单独的变量中不是一个好主意,因为正如您所说的,您无法知道有多少个变量。你知道吗

ids = []
for map in data['maps']:
    ids.append(map['id'])

您可以通过检查data['maps']length来获得id的数量(即元素的数量):

number_of_ids = len(data['maps'])

获取所有id值的干净方法是将它们存储在list中。你知道吗

你可以通过一种类似于Python的方式来实现这一点:

list_of_ids = [map['id'] for map in data['maps']]

使用这种方法,您甚至不需要存储原始json中元素的数量,因为您基本上是使用foreach方法遍历所有元素的。你知道吗

如果pythonic方法给您带来麻烦,那么您可以使用经典的foreach方法来实现同样的效果:

list_of_ids = []
for map in data['maps']:
    list_of_ids.append(map['id'])

或者你可以用经典的for loop,这里是你真正需要长度的地方:

number_of_ids = len(data['maps'])
list_of_ids = []
for i in range(0,number_of_ids):
    list_of_ids.append(data['maps'][i]['id'])

最后一种是经典的方法,但我建议您采用其他方法来利用python提供给您的优势!你知道吗

你可以找到更多关于这个东西here!你知道吗

快乐的编码!你知道吗

相关问题 更多 >