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

如何使用Openpyxl将JSON数据按指定结构写入Excel文件

问题原因

原有代码仅遍历JSON数组中的每个完整对象,未对单个对象内部的属性值做二次遍历,因此会把整个字典对象直接写入单个单元格。此外需要固定JSON属性的读取顺序,避免不同对象的属性顺序错位导致列内容匹配错误。

修正后的代码
# 提前固定属性读取顺序,和你要写入的Excel列顺序一一对应
key_order = ["id", "url", "titolo", "prezzo", "citta", "zona", "via", 
             "tipologia", "superficie", "posti_auto", "piano", 
             "piani_edificio", "balcone", "cantina", "terrazza", 
             "giardino_privato", "taverna", "esposizione_esterna"]

riga_dump = 3  # 起始行号,和你原有设置保持一致

# 第一层循环:每个JSON对象对应一行
for item in self.json:
    colonna_dump = 2  # 每一行都从第2列开始写入,和你原有设置保持一致
    # 第二层循环:每个属性对应一列,按固定顺序读取属性值
    for key in key_order:
        cell = scheda_1.cell(row=riga_dump, column=colonna_dump)
        cell.alignment = Alignment(horizontal='center')
        cell.font = Font(color='00000000')
        cell.value = item.get(key, "")  # 属性缺失时自动填空值,避免报错
        colonna_dump += 1
    # 写完一整行后行号+1,切换到下一行
    riga_dump += 1
逻辑说明
  • 提前定义的key_order顺序需要和你Excel表头的列顺序完全匹配,兼容低版本Python字典不保证插入顺序的问题,避免列内容错位
  • 两层循环分别对应行遍历和列遍历,完全匹配你要求的「一个JSON对象对应一行、一个属性对应一列」的写入规则
  • 用get方法读取属性值,兼容部分对象属性缺失的场景,避免抛出KeyError异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:09:02