如何将API链接正确归类到字典对应Category的列表并统计数量?
问题修正方案
错误原因
你遇到的问题是所有分类共享了同一个列表对象——列表属于可变类型,当你把同一个列表赋值给多个字典键时,对这个列表的任何修改(比如append)都会同步反映到所有关联的键上,尽管打印的Category是正确的,但实际操作的是同一个列表引用。
修正方法1:使用collections.defaultdict(推荐)
defaultdict会在访问不存在的键时自动创建新的空列表,确保每个分类拥有独立的列表:
from collections import defaultdict # 初始化字典:键为Category,值为对应Link列表 api_dict = defaultdict(list) # 初始化统计字典 category_count = {} for item in jdata_list: category = item["Category"] link = item["Link"] # 将链接添加到对应分类的列表 api_dict[category].append(link) # 统计分类下的API数量 category_count[category] = category_count.get(category, 0) + 1 # 可选:将defaultdict转为普通字典 api_dict = dict(api_dict)
修正方法2:手动创建独立列表
如果不想导入模块,每次检测到新分类时,手动创建一个新的空列表:
api_dict = {} category_count = {} for item in jdata_list: category = item["Category"] link = item["Link"] # 若分类不存在,创建新的空列表 if category not in api_dict: api_dict[category] = [] category_count[category] = 0 # 添加链接并更新计数 api_dict[category].append(link) category_count[category] += 1
验证结果
运行修正后的代码后,api_dict会以Category为键,对应每个分类的独立Link列表为值;category_count则存储每个分类下的API数量。
内容的提问来源于stack exchange,提问作者zayvianas
相关产品推荐
相关产品推荐

