gpt4 book ai didi

python - 使用 Python 解码 JSON 并存储嵌套对象

转载 作者:行者123 更新时间:2023-11-28 21:26:27 24 4
gpt4 key购买 nike

我正在尝试用 Python 解码以下 JSON 文件:

{"node":[
{
"id":"12387",
"ip":"172.20.0.1",
"hid":"213",
"coord":{"dist":"12","lat":"-9.8257","lon":"65.0880"},
"status":{"speed":"90","direction":"N"},
"ts":"12387"}
]
}

通过使用:

json_data=open('sampleJSON')
jdata = json.load(json_data)
for key, value in jdata.iteritems():
print "Key:"
print key
print "Value:"
print value

我的输出是:

Key:
node
Value:
[{u'status': {u'direction': u'N', u'speed': u'90'}, u'ip': u'172.20.0.1', u'ts': u'12387', u'coord': {u'lat': u'-9.8257', u'lon': u'65.0880', u'dist': u'12'}, u'hid': u'213', u'id': u'12387'}]

我希望能够打印嵌套对象的键和值 statuscoord,以及 node 、“hid”、“id”、“ip”和“ts”。

我如何遍历所有嵌套值?

提前致谢!

最佳答案

您可以使用递归函数将其全部打印出来。这可以改进,但这里是想法:

import json

json_data = open('data.json')
jdata = json.load(json_data)

def printKeyVals(data, indent=0):
if isinstance(data, list):
print
for item in data:
printKeyVals(item, indent+1)
elif isinstance(data, dict):
print
for k, v in data.iteritems():
print " " * indent, k + ":",
printKeyVals(v, indent + 1)
else:
print data

输出

 node:

status:
direction: N
speed: 90
ip: 172.20.0.1
ts: 12387
coord:
lat: -9.8257
lon: 65.0880
dist: 12
hid: 213
id: 12387

否则,您可以使用:

import pprint
pprint.pprint(jdata)

关于python - 使用 Python 解码 JSON 并存储嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com