将JSON值添加到列表中

时间:2017-06-08 12:18:51

标签: python json python-2.7 list nested

我想要遍历我的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数据创建嵌套列表?

3 个答案:

答案 0 :(得分:2)

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

这样的事情应该可以胜任:

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']]

答案 1 :(得分:1)

如果你只想要这个

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']] 

答案 2 :(得分:0)

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

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