Python如何将外层字典键作为Id字段添加到内层字典列表
问题说明
需要将外层字典的键(1、11014、11019)作为Id字段,添加到对应值的字典列表的每个内层字典中,最终将所有内层字典合并为一个列表。
原错误代码的问题:直接遍历字典时只能拿到外层键(整数类型),既没有获取到键对应的内层列表,也没有遍历列表内的字典,无法完成字段添加操作。
实现代码
直接修改原数据版本
如果不需要保留原字典的结构,可以直接遍历字典键值对修改内层字典:
output = [] # 通过items()同时获取外层键和对应的内层字典列表 for id_val, dict_list in df.items(): for inner_dict in dict_list: # 给每个内层字典添加Id字段 inner_dict['Id'] = id_val output.append(inner_dict) # 把处理后的结果赋值给df,得到目标结构 df = output
不修改原数据版本
如果不想改动原始df字典的内容,可以生成新字典存入结果:
output = [] for id_val, dict_list in df.items(): for inner_dict in dict_list: # 解包原字典键值对,新增Id字段生成新字典 new_dict = {**inner_dict, 'Id': id_val} output.append(new_dict) df = output
效果示例
处理后列表的第一个元素结构如下,完全符合预期:
{'Id': 1, 'Weekday': 'Sunday', 'StartTime': 9.0, 'EndTime': 9.0, 'Duration': 0.0}
内容的提问来源于stack exchange,提问作者Theresa_S
相关产品推荐
相关产品推荐

