获取 JSON Python 第二个列表的数据

Get data for JSON Python second List

希望你一切都好 我正在尝试通过 API 和 Python Json 从 zendisk 获取数据 我可以在 Audits LikeTicket_id 和 auther_id 下获取任何数据值,但是当尝试在 Body 等事件下获取数据时 继续收到此错误

打印(审计['body'])

按键错误:'body'

JSON输出

{
   "audits":[
      {
         "id":1727876301271,
         "ticket_id":54010951,
         "created_at":"2021-10-21T10:58:06Z",
         "author_id":12306596687,
         "metadata":{
            "system":{
               "client":"GuzzleHttp/6.2.1 curl/7.29.0 PHP/7.1.2",
               "ip_address":"x.x.x.x",
               "location":"Boardman, OR, United States",
               "latitude":45.8491,
               "longitude":-119.7143
            },
            "custom":{
               
            }
         },
         "events":[
            {
               "id":1727876301291,
               "type":"Comment",
               "author_id":366289833251,
               "body":"Sehr geehrte Damen und Herren,\n\nIn unserer Bestellung fehlt das Kleid, es war nicht mit dabei, obwohl es hätte drin sein müssen.\nFreundliche Grüße",
            
               "attachments":[
                  
               ],
               "audit_id":1727876301271
            },
            {
               "id":1727876301311,
               "type":"Create",
               "value":"366289833251",
               "field_name":"requester_id"
            },

Python代码

import requests
import csv
# Settings
auth = 'xxxxxxx', 'xxxxxx'
view_tickets = []
view_id = 214459268
view_audits = []
ticket_id = 54010951
view_events =[]
print(f'Getting tickets from ticket_id ID {ticket_id}')
url = f'https://xxxx.zendesk.com/api/v2/tickets/54010951/audits.json'
while url:
    response = requests.get(url, auth=auth)
    page_data = response.json()
    audits = page_data['audits']     # extract the "tickets" list from the page
    view_audits.extend(audits)
    url = page_data['next_page']


for audit in audits:

    print(audit['body'])

您知道您是在覆盖而不是添加审核,对吗? (在这一行中:audits = page_data['audits'])。我不认为这是有道理的,但很难知道你的意图。

要修复错误本身,您的 json 结构在事件 key 中有 body 键。所以你可以通过以下方式访问它:

print(audit['events'][0]['body'])

或者,使用另一个循环:

for audit in audits:
    for event in audit['events']
        print(event['body'])

第二个可能会出错,因为它似乎没有 body 键。如果需要,您可以添加一个 if 语句来处理它。