我刚刚开始在python中使用电报API,电报将此返回给我
{'ok': True, 'result': [{'update_id': 565003056, 'message': {'message_id': 3, 'from': {'id': 137505406, 'is_bot': False, 'first_name': 'Taha', 'username': 'thkh1998', 'language_code': 'fa'}, 'chat': {'id': 137505406, 'first_name': 'Taha', 'username': 'thkh1998', 'type': 'private'}, 'date': 1549632520, 'text': '/start', 'entities': [{'offset': 0, 'length': 6, 'type': 'bot_command'}]}}]}
因为它在这里,所以我在输出上使用了.json()
,所以这是我的问题,我无法到达ID 137505406
我尝试使用answer['result']['chat']['id']
来达到目标,但是遇到了这个错误:
TypeError: list indices must be integers or slices, not str
答案 0 :(得分:1)
对于像这样的深层嵌套结构,如果您在交互式Python shell中逐步使用它,它将很有帮助。
将您的响应分配给变量,然后慢慢地朝着期望的值工作。
>>> json = {'ok': True, 'result': [{'update_id': 565003056, 'message': {'message_id': 3, 'from': {'id': 137505406, 'is_bot': False, 'first_name': 'Taha', 'username': 'thkh1998', 'language_code': 'fa'}, 'chat': {'id': 137505406, 'first_name': 'Taha', 'username': 'thkh1998', 'type': 'private'}, 'date': 1549632520, 'text': '/start', 'entities': [{'offset': 0, 'length': 6, 'type': 'bot_command'}]}}]}
>>> json['result']
[{'update_id': 565003056, 'message': {'message_id': 3, 'from': {'id': 137505406, 'is_bot': False, 'first_name': 'Taha', 'username': 'thkh1998', 'language_code': 'fa'}, 'chat': {'id': 137505406, 'first_name': 'Taha', 'username': 'thkh1998', 'type': 'private'}, 'date': 1549632520, 'text': '/start', 'entities': [{'offset': 0, 'length': 6, 'type': 'bot_command'}]}}]
>>> json['result'][0]
{'update_id': 565003056, 'message': {'message_id': 3, 'from': {'id': 137505406, 'is_bot': False, 'first_name': 'Taha', 'username': 'thkh1998', 'language_code': 'fa'}, 'chat': {'id': 137505406, 'first_name': 'Taha', 'username': 'thkh1998', 'type': 'private'}, 'date': 1549632520, 'text': '/start', 'entities': [{'offset': 0, 'length': 6, 'type': 'bot_command'}]}}
>>> json['result'][0]['message']
{'message_id': 3, 'from': {'id': 137505406, 'is_bot': False, 'first_name': 'Taha', 'username': 'thkh1998', 'language_code': 'fa'}, 'chat': {'id': 137505406, 'first_name': 'Taha', 'username': 'thkh1998', 'type': 'private'}, 'date': 1549632520, 'text': '/start', 'entities': [{'offset': 0, 'length': 6, 'type': 'bot_command'}]}
>>> json['result'][0]['message']['chat']
{'id': 137505406, 'first_name': 'Taha', 'username': 'thkh1998', 'type': 'private'}
>>> json['result'][0]['message']['chat']['id']
137505406
在提供的代码中缺少两个嵌套级别。您需要
answer['result'][0]['message']['chat']['id']