如何用Python Pandas将单列字典格式数据转多列并导出Excel?
Excel字典/字典列表列转多列格式实现方法
所需依赖库
先安装必要的Python工具库:
pip install pandas openpyxl
实现步骤与代码
核心逻辑
- 读取原Excel文件,提取目标列的字符串数据
- 通过
ast.literal_eval将字符串形式的字典/字典列表转换为Python原生对象 - 将转换后的对象展开为多列结构的DataFrame
- 导出为新的Excel文件
完整代码
import pandas as pd import ast # 1. 读取原Excel文件,仅加载目标列 df = pd.read_excel("原文件路径.xlsx", usecols=[0]) # 2. 定义解析函数,兼容单行字典或字典列表的情况 def parse_row_data(row): parsed_obj = ast.literal_eval(row[0]) # 处理字典列表 if isinstance(parsed_obj, list): return pd.DataFrame(parsed_obj) # 处理单个字典 elif isinstance(parsed_obj, dict): return pd.DataFrame([parsed_obj]) else: return pd.DataFrame() # 3. 逐行解析并合并所有数据 final_df = pd.concat([parse_row_data(row) for _, row in df.iterrows()], ignore_index=True) # 4. 导出转换后的Excel文件 final_df.to_excel("转换后文件.xlsx", index=False, engine="openpyxl")
关键说明
ast.literal_eval比原生eval更安全,仅用于解析合法的Python字面量字符串,避免执行恶意代码- 若原数据存在格式错误的字符串,会触发解析异常,需提前清理原数据的格式问题
- 若不同行的字典键不统一,转换后的表格会自动为缺失的键填充
NaN值
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

