如何解析Python Request返回的多层嵌套JSON并获取指定ID对应值
解决Python访问JSON深层数据的TypeError问题
错误原因分析
- 键名不匹配:你的JSON结构中,ticket下的键是
custom_field,但代码里写成了custom_fields,这会导致KeyError,需先修正键名。 - 遍历方式错误:
r1["ticket"]["custom_field"]是一个列表,列表内每个元素是包含id和value的字典。你用for key, value in ticket:的方式遍历,会尝试把字典强制解包成两个变量,不符合列表元素的结构,进而引发TypeError。
正确实现代码
# 假设response是已通过requests获取的响应对象 r1 = response.json() # 正确获取custom_field列表(注意键名是custom_field) custom_fields = r1["ticket"]["custom_field"] # 目标id target_id = 341434334343125 matched_value = None # 遍历列表中的每个字段字典 for field in custom_fields: if field["id"] == target_id: matched_value = field["value"] break # 找到目标后立即退出循环,提升效率 # 输出结果 if matched_value is not None: print(f"匹配到的value值:{matched_value}") else: print("未找到目标id对应的字段")
代码说明
- 从JSON响应中正确提取
custom_field列表; - 遍历列表中的每个字典元素
field,直接通过键名访问id和value; - 匹配到目标id后,取出对应的value并终止循环;
- 最后处理找到/未找到的情况,避免空值错误。
内容的提问来源于stack exchange,提问作者Bob Anastasia
相关产品推荐
相关产品推荐

