python怎么提取数组中的数

问题遇到的现象和发生背景

最近在学习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)

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

例如这样

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")