การอ่านวัตถุ 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 ข้างต้น ฉันสามารถดึงข้อมูลดัมพ์ 'Channel' แบบดิบทั้งหมดได้โดยใช้:

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
คลิกเครื่องหมายถูกกรอบสีเขียวทางด้านซ้ายของคำตอบที่ช่วยแก้ปัญหาของคุณได้ สิ่งนี้ทำเครื่องหมายคำตอบว่า 'ยอมรับ' และโดยการขยายคำถามเป็น 'มีคำตอบที่ยอมรับ' - แต่ฉันไม่เห็นลูกศรสีเขียว ขออภัย ไม่เช่นนั้นฉันจะปิดกระทู้และให้เครดิตที่ถูกต้องแก่ jonrsharpe เพื่อช่วยเหลือฉัน   -  person vaylain    schedule 01.07.2016
comment
คุณไม่สามารถยอมรับคำตอบได้เว้นแต่จะมีใครโพสต์คำตอบ นี่เป็นเพียงความคิดเห็น!   -  person jonrsharpe    schedule 01.07.2016
comment
โอ้ ขอบคุณอีกครั้งที่ช่วยครับท่าน   -  person vaylain    schedule 01.07.2016