如何将API返回的不同长度列表合并为键值匹配的Python字典
问题原因
你现有代码将所有商家名称和全部分类分别存入两个独立的平级列表,丢失了「分类从属商家」的绑定关系,自然无法对齐生成你要的键值对应结构。
解决代码
你不需要额外维护两个全局列表,在遍历每个商家时直接收集它的分类,存入字典即可:
result = {} for biz in response_dict['businesses']: # 取当前商家名称作为键 shop_name = biz['name'] # 收集当前商家的所有分类作为值 cate_list = [item['title'] for item in biz['categories']] result[shop_name] = cate_list
运行后result就是你要的目标字典结构。
如果存在同名商家需要合并分类,可以使用你注释过的defaultdict实现:
import collections result = collections.defaultdict(list) for biz in response_dict['businesses']: shop_name = biz['name'] for item in biz['categories']: result[shop_name].append(item['title']) # 若需要转为普通字典,可追加一行:result = dict(result)
内容的提问来源于stack exchange,提问作者aleus
相关产品推荐
相关产品推荐

