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

使用pandas导出Excel每行到独立JSON文件报错如何解决

问题排查与修复方案

第一次报错(IndexError)原因

  • 逻辑错误:row是遍历到的当前单行数据,本身是长度等于列数的Series,你使用row[rowNumber]会尝试按行号取当前行的第N个元素,当rowNumber增加到超过列数时就会触发越界错误,完全不需要额外定义rowNumber计数,iterrows()返回的index本身就是行号。
  • 文件名错误:str([rowNumber])会把列表转成字符串,生成的文件名会带方括号,不符合要求。

第二次报错(TypeError)原因

  • 参数名错误:pd.read_excel()没有index和columns参数,指定索引列要用index_col,指定读取列要用usecols。
  • 方法调用错误:row.to_string(row)传参错误,且你需要输出JSON格式,应该直接调用Series自带的to_json()方法,不需要手动转字符串。

可直接运行的正确代码

import pandas as pd
from pathlib import Path

# 配置路径
root_location = Path("/fullpath/")
excel_path = root_location / "toexcelfile.xlsx"
# 读取Excel,不需要指定特殊索引或者列的话可以删除read_excel的额外参数
df = pd.read_excel(excel_path)

# 遍历每一行
for index, row in df.iterrows():
    # 文件名按要求为<行号>.json,需要行号从1开始就把index改为index+1
    file_path = root_location / f"{index}.json"
    # 直接将当前行转JSON写入文件
    with open(file_path, "w", encoding="utf-8") as f:
        f.write(row.to_json(force_ascii=False, indent=2))

补充说明

  • force_ascii=False用于保留中文不转义,indent=2用于格式化JSON方便阅读,不需要可以删掉这两个参数。

内容的提问来源于stack exchange,提问作者Edalgo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:15:03