Python 从json获取数据
我想从json获取数据。我有一个访问所有级别的循环的想法。 我只能从单个块中提取数据Python 从json获取数据,python,json,python-3.x,Python,Json,Python 3.x,我想从json获取数据。我有一个访问所有级别的循环的想法。 我只能从单个块中提取数据 print(output['body']['data'][0]['list'][0]['outUcastPkts']) 如何获取其他数据 import json,urllib.request data = urllib.request.urlopen("http://172.0.0.0/statistic").read() output = json.loads(data) for e
print(output['body']['data'][0]['list'][0]['outUcastPkts'])
如何获取其他数据
import json,urllib.request
data = urllib.request.urlopen("http://172.0.0.0/statistic").read()
output = json.loads(data)
for elt in output['body']['data']:
print(output['body']['data'][0]['inUcastPktsAll'])
for elt in output['list']:
print(output['body']['data'][0]['list'][0]['outUcastPkts'])
如果键不存在,“.get()”方法将返回None。
在python中,您可以轻松地迭代列表中的对象,如下所示:
>>> l = [1, 2, 3, 7]
>>> for elem in l:
... print(elem)
...
1
2
3
7
这与列表中的对象(整数、元组、字典)的类型有关。考虑到这一点,您的解决方案已经不远了,您只需做以下更改:
对于输出['body']['data']中的条目:
打印(条目['inUcastPktsAll'])
对于条目['list']中的list_元素:
打印(列表元素['outUcastPkts'])
这将为您提供的json对象提供以下信息:
3100617019
117427359
0
8269483865
3101012296
0
其他数据是什么意思?
output = json.loads(data) #Type of output is a dictionary.
#Try to use ".get()" method.
print(output.get('body')) #Get values of key 'body'
print(output.get('body').get('data')) #Get a list of key 'data'
>>> l = [1, 2, 3, 7]
>>> for elem in l:
... print(elem)
...
1
2
3
7