Я работаю над тем, чтобы научиться кодировать приложение, используя SLACK API и Python 3. Он предоставляет объект ответа JSON, но я обнаружил, что мне сильно не хватает знаний в понимании списка/словаря. Мне действительно трудно понять, как работать с синтаксисом для извлечения конкретной информации из следующего объекта JSON:
"channels": [
{
"id": "C73HHT2TZ",
"name": "general",
"is_channel": true,
"created": 1465530333,
"creator": "V35HUT43C",
"is_archived": false,
"is_general": true,
"has_pins": false,
"is_member": true,
"last_read": "1467334012.000165",
"latest": {
"type": "message",
"user": "USLACKBOT",
"text": "Good bye. See you when you return...",
"ts": "1467334012.000165"
},
"unread_count": 0,
"unread_count_display": 0,
"members": [
"X95HUT43C",
"Ad5RQAAHZ",
"X45SY5VEH"
]
В приведенном выше объекте JSON я могу получить весь необработанный дамп «Канала», используя:
response = slack.rtm.start()
listening = response.body['channels']
for i in listening:
print(i)
Я пробовал это, а безрезультатно:
response = slack.rtm.start()
listening = response.body['channels'][0]
for i in listening:
print(i)
но это просто дает мне следующее:
id
is_archived
is_general
purpose
name
is_channel
unread_count
members
has_pins
created
topic
creator
unread_count_display
latest
is_member
last_read code here
Я становлюсь теплее, но, к сожалению, это просто беспорядок, и я действительно не могу понять, как понять, как получить информацию по следующему пути:
'channels': > 'latest': > 'text': > и, наконец, значение 'text'
Как мне это сделать?
text = response.body['channels'][0]['latest']['text']
. JSON просто становится вложенными списками (массивами) и словарями (объектами). - person jonrsharpe   schedule 01.07.2016channels
в своем списке, и это словарь. Итерация по словарю дает вам ключи, поэтому вы видите их все распечатанными. - person Martijn Pieters   schedule 01.07.2016