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