You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:15:32