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

如何将Python打印的API嵌套JSON响应结果正确保存为CSV文件

解决方案

你遇到输出异常的核心原因有两个:

  • 循环内反复追加打开输出文件,且没有正确初始化CSV写入器的字段结构
  • 之前调用DictWriter时大概率错误传入了字符串而非字典对象,导致字符串被按字符拆分写入多列

以下是可直接运行的修正代码:

import sys
import requests
import csv

# 定义CSV表头字段,和返回字典的键一一对应
field_names = ["domain", "firstSeen", "lastSeen"]

# 提前打开输出文件初始化写入器,避免循环内反复操作文件
with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=field_names)
    # 写入表头,不需要表头可删除这行
    writer.writeheader()
    
    fList = sys.argv[1]
    with open(fList, "r", encoding='utf-8-sig') as ins:
        for line in ins:
            # 去除读入行首尾的换行、空格,避免URL拼接错误
            targetDomain = line.strip()
            url1 = "https://websitehere={0}".format(targetDomain)
            response = requests.get(url1).json()
            for subs in response["result"]["records"]:
                # 直接传入原生字典对象写入,不要转成字符串
                writer.writerow(subs)
                # 保留打印逻辑做校验
                print(subs)

如果你需要新增存储字段,直接在field_names列表中添加对应字典的键名即可。
之前出现的单字拆分问题就是因为误将字典转成字符串传给了DictWriter,写入器会把字符串视为可迭代对象按字符拆分,直接传入原生字典即可避免该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:36:05