Python实现随机ID与姓名从JSON导出至Excel报错求助
问题修正:Python生成随机数据并导出Excel失败
报错原因
报错信息ValueError: Cannot convert {'Random_UserName': 'Kristen Schultz', 'age': 97} to Excel明确指出:json2excel无法将嵌套字典直接转换为Excel单元格值。你的my_dict中User是嵌套字典,而指定的导出列Random_UserName在嵌套结构里,工具无法正确解析提取。另外,原代码每次循环调用run方法,会重复创建Excel文件,不符合批量导出逻辑。
修正后的代码
import random from random import randint from faker import Faker from json2excel import Json2Excel if __name__ == '__main__': # 初始化导出工具,指定要导出的列 json2excel = Json2Excel(head_name_cols=["Random_ID", "Random_UserName"]) fake = Faker('en_US') # 先收集所有要导出的数据到列表中 data_list = [] for _ in range(10): # 调整数据结构,把需要导出的字段放在顶层字典 user_name = fake.name() my_dict = { 'Random_ID': randint(0, 10000), 'Random_UserName': user_name # 如果需要保留age字段,可添加到顶层 # 'age': random.randint(10, 99) } data_list.append(my_dict) # 一次性导出所有数据 file_path = json2excel.run(data_list) print(f"Excel文件已生成,路径:{file_path}")
关键修正点
- 调整数据结构:将嵌套在
User里的Random_UserName提取到顶层字典,确保导出列对应的字段是可直接读取的基础类型(字符串/数字)。 - 批量收集数据:先把10条数据存入列表,再调用
run方法一次性导出,避免重复创建文件。 - 简化冗余代码:移除无用的
json模块导入,用random.randint替代random.randrange让代码更简洁。
内容的提问来源于stack exchange,提问作者user20030253
相关产品推荐
相关产品推荐

