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

Python实现JSON转CSV问题:无法将数值写入CSV第二列

问题:JSON数据无法写入CSV第二列

当前Python代码仅能将JSON中quotes的键输出到CSV第一列,无法将对应数值写入第二列,期望实现键值对分别对应COL1和COL2。

期望输出CSV

COL1,COL2
VAL1,123.777
VAL2,456.888
VAL3,789.999

原始JSON文件(file.json)

{
    "success": true,
    "timestamp": 1663273564,
    "source": "ABC",
    "quotes": {
        "VAL1": 123.777,
        "VAL2": 456.888,
        "VAL3": 789.999
    }
}

原始Python代码

import json
import csv
with open("C:file.json") as file:
    data = json.load(file)
    
fname = "c:/output.csv"

with open(fname, "w") as file:
    csv_file = csv.writer(file)
    csv_file.writerow(["COL1","COL2"])
    for item in data["quotes"]:
        csv_file.writerow([item[0:4]])

当前错误输出CSV

COL1,COL2
VAL1
VAL2
VAL3

修正方案

问题根源

  • 遍历字典data["quotes"]时,默认仅获取键,未提取对应数值
  • writerow([item[0:4]])仅写入单个元素,无法填充第二列

修正后的代码

import json
import csv

# 修正路径格式(添加斜杠避免解析错误)
with open("C:/file.json") as file:
    data = json.load(file)
    
fname = "c:/output.csv"

with open(fname, "w", newline='') as file:
    csv_file = csv.writer(file)
    csv_file.writerow(["COL1","COL2"])
    # 使用items()同时获取键和值
    for key, value in data["quotes"].items():
        csv_file.writerow([key, value])

关键修改点

  1. 遍历方式调整:用data["quotes"].items()替代直接遍历字典,同时获取键(key)和对应数值(value)
  2. 路径修正:将"C:file.json"改为"C:/file.json",避免Windows路径解析错误
  3. 添加newline='':防止CSV文件中出现多余空行(Windows环境下推荐)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:45:41