Python调用Zendesk API获取Audits下Events的body字段报KeyError
问题原因
你触发KeyError: 'body'的直接原因是字段层级匹配错误:
- 你给出的JSON返回结构中,
body字段并不属于audits数组下的单个audit对象,而是嵌套在audit对象下的events数组内 - 同时不是所有
event对象都有body字段,仅type值为Comment的评论类event才携带该字段,其他类型(比如示例中的Create类event)不存在body字段 - 额外注意:你现有代码中已经将所有页的audit数据存入了
view_audits列表,但最终循环时只遍历了最后一页的audits变量,会漏掉前面页的所有数据
修复后的代码实现
你只需要修改最后的循环部分,按层级取字段并做类型判断即可:
# 遍历全量audit数据 for audit in view_audits: # 遍历当前audit关联的所有event,用get避免无events字段时报错 for event in audit.get('events', []): # 仅处理评论类event if event.get('type') == 'Comment': # 读取body字段输出 print(event.get('body', '无评论内容'))
如果你需要同时获取audit下的其他字段(比如ticket_id、author_id等),可以在循环内直接通过audit.get('ticket_id')的方式取值即可。
内容的提问来源于stack exchange,提问作者Ebram Shehata
相关产品推荐
相关产品推荐

