向lis中添加JSON值

2024-06-01 07:53:30 发布

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

我想遍历我的JSON文件,并在列表中添加两个值。

理论上,我希望有一个嵌套列表作为:ips = [["custom3","modemId"],["custom3","modemId"]]等等。我的JSON文件有171个custom3和modemId值。所以理论上我的嵌套列表将包含171个列表。

我很难将这些值添加到一个列表中,在这个列表中,我希望将每个列表附加在一起,以创建171个列表。

json1 = open('C:\\Users\\' + comp_name + '\\Documents\\Programming Projects\\Python\\Python Firmware Script\\curl\\src\\out.json')
json1_obj = json.load(json1)

for i in json1_obj['data']:
    ip = [i['custom3']['modemId']]

我的JSON数据片段:

{
    "data": [
        {
            "custom3": "192.168.243.132",
            "modemId": "000408"
        },
        {
            "custom3": "192.168.244.156",
            "modemId": "000310"
        }
    ]
}

我有上面提到的171件物品,但我只展示了两件。从上面开始,我想创建两个列表并将它们分别附加到一个嵌套列表中。

如何遍历每个JSON对象并用Python中的JSON数据创建一个嵌套列表?


Tags: 文件数据jsonobj列表dataopen理论
3条回答

如果你只是想要这个

ips = [["custom3","modemId"],["custom3","modemId"]] 

那么你只需要一个简单的列表理解

ips = [d.keys() for d in json1_obj['data']] 

如果您想实际获得值(按顺序),而不是键

ips = [ [ d['custom3'], d['modemId'] ]  for d in json1_obj['data']] 

如果您想要custom3和modemIds的值,可以这样做

[item.values() for item in json_data['data']]

如注释中所述,一旦加载json,它就是一个python字典。 现在应该迭代“data”键的值,提取信息并将其存储在列表中。

像这样的事情应该可以做到:

json_obj = json.load(json1)

ips = []
for piece in json_obj['data']:
    this_ip = [piece['custom3'], piece['modemId']]
    ips.append(this_ip)

单行形式:

ips = [[piece['custom3'], piece['modemId']] for piece in json_obj['data']]

相关问题 更多 >