如何过滤JSON数据并打印指定字段?现有代码执行异常求助
解决JSON字段过滤问题
问题根源
你的代码存在两个关键错误:
- 用
json.dumps()把Python字典转成了JSON字符串,之后试图像访问字典一样操作字符串,这完全不符合语法逻辑; - 字段的访问路径没有匹配JSON的层级结构,
mode和state的位置没找对。
正确实现代码
import json # 假设output是已经解析完成的Python字典 # 如果output是原始JSON字符串,先执行:output = json.loads(output) # 提取目标字段,构造新字典 filtered_data = { "mode": output["response"]["result"]["group"]["mode"], "state": output["response"]["result"]["group"]["local-info"]["state"] } # 格式化输出符合要求的JSON print(json.dumps(filtered_data, indent=2))
代码说明
- 数据类型确认:如果
output是接口返回的原始JSON字符串,必须先用json.loads()解析成Python字典才能进行字段访问;如果已经是字典则跳过这一步。 - 字段路径匹配:严格按照给定JSON的层级结构,
mode在response->result->group下,state在response->result->group->local-info下。 - 格式化输出:用
json.dumps()的indent=2参数生成带换行和缩进的JSON字符串,和你期望的输出格式完全一致。
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

