Python如何提取字典中的数组(列表) 现有代码仅输出type字段问题求解
问题原因
- 变量重名覆盖:你将接口响应解析后的结果赋值给
itemClass,循环时又用itemClass作为循环变量,直接覆盖了原始的响应数据,虽不影响本次循环结果,但属于易引发后续错误的写法。 - 取值逻辑不符合需求:你循环过程中仅提取打印了每个元素的
type字段,没有处理attributes字段,也没有构造你需要的输出结构,自然无法得到预期结果。 - 未做JSON格式化处理:直接打印Python字典对象不会得到带缩进的标准JSON格式输出,需要调用JSON模块的格式化方法。
修复后的代码
import json if response.status_code == 200: # 解析响应结果,避免变量重名 item_list = json.loads(response.text) for item in item_list: # 构造你需要的输出结构,仅保留type和attributes中的attributeId result = { "type": item["type"], "attributes": [{"attributeId": attr["attributeId"]} for attr in item["attributes"]] } # 格式化输出,indent=4设置缩进,ensure_ascii=False兼容中文 print(json.dumps(result, indent=4, ensure_ascii=False))
补充说明
如果你的接口返回的是单个字典而非字典列表,去掉外层的for循环,直接对解析后的字典取值构造result即可。
内容的提问来源于stack exchange,提问作者Suzdar Ibrahim
相关产品推荐
相关产品推荐

