Чтение объекта python json

Я работаю над тем, чтобы научиться кодировать приложение, используя 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'

Как мне это сделать?


person vaylain    schedule 01.07.2016    source источник
comment
Просто продолжайте: text = response.body['channels'][0]['latest']['text']. JSON просто становится вложенными списками (массивами) и словарями (объектами).   -  person jonrsharpe    schedule 01.07.2016
comment
О Боже мой. Это было так просто?!? Я должно быть очень устал. Большое спасибо. Сейчас я чувствую себя немного глупо, но я уверен, что этот пост поможет и другим.   -  person vaylain    schedule 01.07.2016
comment
@jonrsharpe, вы можете опубликовать это как ответ.   -  person Alexander Trakhimenok    schedule 01.07.2016
comment
@vaylain: вы перебирали первый словарь channels в своем списке, и это словарь. Итерация по словарю дает вам ключи, поэтому вы видите их все распечатанными.   -  person Martijn Pieters    schedule 01.07.2016
comment
Как мне отметить этот пост как ответ? Извините, очевидно, я обычно не прошу о помощи.   -  person vaylain    schedule 01.07.2016
comment
Нажмите зеленую галочку слева от ответа, который решил вашу проблему. Это помечает ответ как «принятый», и, соответственно, вопрос как «имеет принятый ответ». — Но я не вижу зеленой стрелки. Извините, иначе я бы закрыл ветку и отдал должное Джонршарпу за помощь.   -  person vaylain    schedule 01.07.2016
comment
Вы не можете принять ответ, если кто-то не опубликует его; это просто комментарии!   -  person jonrsharpe    schedule 01.07.2016
comment
О, хорошо, еще раз спасибо за помощь, сэр.   -  person vaylain    schedule 01.07.2016