如何提取字典Type字段唯一值并存储为集合?解决TypeError报错
问题分析与解决方法
错误原因
- 未正确读取JSON文件内容:
content只是包含文件名和打开模式的元组,并非文件内的字典列表,遍历它时每个元素都是字符串,无法用['Type']键索引,触发TypeError。 - 变量
ebayproducts未定义,原代码中的for item in ebayproducts属于无意义的多余逻辑。 - 文件名存在拼写错误:
ebyayproducts.json应为ebayproducts.json,否则会出现文件找不到的问题。
修正后的代码
import json # 正确读取JSON文件 file_path = "C:\\Users\\jon.welsh\\Desktop\\ebayproducts.json" with open(file_path, "r") as f: ebayproducts = json.load(f) # 将文件内容解析为字典列表 # 提取所有唯一的Type字段值到集合 unique_types = set(item['Type'] for item in ebayproducts) print(unique_types)
代码说明
import json:导入JSON处理模块,用于解析JSON格式的文件内容。with open(...) as f:使用上下文管理器打开文件,自动处理文件关闭操作,避免资源泄漏。json.load(f):将文件中的JSON内容转换为Python的字典列表(假设你的JSON文件是包含多个产品字典的数组结构)。set(item['Type'] for item in ebayproducts):通过生成器表达式遍历每个产品字典,提取Type字段值并转为集合,利用集合自动去重的特性,比列表推导式更高效。
内容的提问来源于stack exchange,提问作者user18605114
相关产品推荐
相关产品推荐

