获取 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 语句来处理它。
希望你一切都好 我正在尝试通过 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 语句来处理它。