最近在学习python,想获取json数据里,id的数据
{'data': {'ip': 10001 , 'data': [{'id': 777, 'url': '1', 'go_url': '1'}, {'id': 666, 'url': '1', 'go_url': '1'}]},'message': '', 'success': '1'}
tpi = r.json().get('data').get('data').get('id')
print(tpi)
AttributeError: 'list' object has no attribute 'get'
尝试MyEncoder方法处理这个报错失败,目前不清楚错在哪里,这个问题卡了几天了,有没有大手指正一下
获取到‘777’
你题目的解答代码如下:
dic={'data': {'ip': 10001 , 'data': [{'id': 777, 'url': '1', 'go_url': '1'}, {'id': 666, 'url': '1', 'go_url': '1'}]},'message': '', 'success': '1'}
tpi = dic.get('data').get('data')[0].get('id')
print(tpi)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
例如这样
import json
s = "{"data":{"yesterday":{"date":"11日星期二","high":"高温 33℃","fx":"西南风","low":"低温 26℃","fl":"微风","type":"阵雨"},"city":"杭州","aqi":"56","forecast":[{"date":"12日星期三","high":"高温 36℃","fengli":"微风级","low":"低温 28℃","fengxiang":"西南风","type":"多云"},{"date":"13日星期四","high":"高温 37℃","fengli":"微风级","low":"低温 28℃","fengxiang":"西南风","type":"多云"},{"date":"14日星期五","high":"高温 36℃","fengli":"微风级","low":"低温 28℃","fengxiang":"南风","type":"多云"},{"date":"15日星期六","high":"高温 36℃","fengli":"微风级","low":"低温 27℃","fengxiang":"南风","type":"多云"},{"date":"16日星期天","high":"高温 36℃","fengli":"微风级","low":"低温 27℃","fengxiang":"东南风","type":"晴"}],"ganmao":"各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。","wendu":"31"},"status":1000,"desc":"OK"}"
t = json.loads(s)
print(t["data"]["yesterday"]["high"])
字典
s = {'data': {'ip': 10001, 'data': [{'id': 777, 'url': '1', 'go_url': '1'}, {'id': 666, 'url': '1', 'go_url': '1'}]}, 'message': '', 'success': '1'}
print(s['data']['data'][0]['id'])
(r.json().get('data').get('data'))[0].get('id')
lists = {'data': {'ip': 10001 , 'data': [{'id': 777, 'url': '1', 'go_url': '1'}, {'id': 666, 'url': '1', 'go_url': '1'}]},'message': '', 'success': '1'}
print(lists['data']['data'][0]['id'])
你这是语法有问题, 列表没有get方法, 字典有get, 你要取列里字典的键值可以for循环
data_list = r.json().get('data').get('data')
for v in data_list:
print(v.get("id"))
或者你想取列表指定位置的id, 可以用下标的形式
data_list[0].get("id")