如何将嵌套字典列表转为对应Key的DataFrame并生成CSV文件
没问题,我来帮你理顺这个需求的实现步骤~
首先先明确下你的数据结构,应该是类似这种外层字典嵌套字典列表的格式:
data = { "sales_records": [ {"date": "2024-01-01", "amount": 120}, {"date": "2024-01-02", "amount": 95} ], "product_info": [ {"id": "P001", "name": "Laptop", "price": 5999}, {"id": "P002", "name": "Mouse", "price": 99} ] }
第一步:把每个key对应的字典列表转为DataFrame并存入字典
你可以选择两种方式:要么直接更新原字典(替换掉原来的列表),要么创建一个新字典专门存储DataFrames(更推荐,避免覆盖原始数据)。
方式1:创建新字典存储DataFrames
import pandas as pd df_storage = {} for key, dict_list in data.items(): df_storage[key] = pd.DataFrame(dict_list)
这样df_storage里的每个key就对应着对应数据的DataFrame了,原始的data字典还保留着原来的列表数据。
方式2:直接更新原字典
如果你不需要保留原始的列表数据,可以直接把原字典的value替换成DataFrame:
for key in data: data[key] = pd.DataFrame(data[key])
第二步:定义函数导出每个DataFrame为CSV文件
接下来就可以写一个函数,遍历存储DataFrames的字典(或者原始数据字典),把每个key对应的DataFrame导出为以key命名的CSV文件:
直接基于原始数据字典的函数(一步到位)
这个函数会直接读取原始的字典列表,生成DataFrame并导出,不需要提前处理:
import pandas as pd def export_key_data_to_csv(raw_data): for key, item_list in raw_data.items(): # 将字典列表转为DataFrame df = pd.DataFrame(item_list) # 导出CSV,index=False避免写入多余的索引列 df.to_csv(f"{key}.csv", index=False) print(f"✅ 已成功导出文件:{key}.csv") # 调用函数,传入你的原始数据字典 export_key_data_to_csv(data)
基于已生成的DataFrame字典的函数
如果已经提前生成了像df_storage这样的DataFrame字典,可以用这个简化版:
def export_df_to_csv(df_dict): for key, df in df_dict.items(): df.to_csv(f"{key}.csv", index=False) print(f"✅ 已成功导出文件:{key}.csv") export_df_to_csv(df_storage)
关键细节说明
pd.DataFrame(dict_list):会自动把字典的键作为DataFrame的列名,每个字典的值对应列中的行数据,完美适配你的数据结构。to_csv的index=False:这个参数很重要,能避免把DataFrame默认的数字索引写入CSV文件,让导出的文件更干净。- 文件名用key命名:这样每个CSV文件和原始数据的key一一对应,方便后续查找和使用。
内容的提问来源于stack exchange,提问作者AmiB
相关产品推荐
相关产品推荐

