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

如何为API返回的JSON输出添加顶层根节点info?

解决思路:给JSON数组添加顶层"info"节点

你之前用字符串拼接+str(data)的方式会直接破坏JSON格式——str(data)输出的是Python列表的字符串形式(带单引号、不符合JSON规范),再用json.dump写入时,会把整个拼接字符串当成普通JSON值转义,自然出问题。

正确的做法是直接用Python字典构造目标结构,再通过json模块序列化输出,步骤如下:

实现代码

假设data已经是你从API获取并解析后的Python列表(比如用json.load()读取的结果):

import json

# 示例:原API返回解析后的Python列表
data = [
    {"Id": 1, "FirstName": "Ken", "LastName": "Sánchez", "Info": {"MiddleName": "J"}},
    {"Id": 2, "FirstName": "Terri", "LastName": "Duffy", "Info": {"MiddleName": "Lee"}},
    {"Id": 3, "FirstName": "Roberto", "LastName": "Tamburello"},
    {"Id": 4, "FirstName": "Rob", "LastName": "Walters"},
    {"Id": 5, "FirstName": "Gail", "LastName": "Erickson", "Info": {"Title": "Ms.", "MiddleName": "A"}}
]

file_name = "output.json"
with open(file_name, 'w', encoding='utf-8') as f:
    # 构造包含顶层info节点的字典
    wrapped_data = {"info": data}
    # 序列化写入,ensure_ascii=False保留特殊字符,indent格式化输出
    json.dump(wrapped_data, f, ensure_ascii=False, indent=4)

错误原因说明

  • str(data)生成的是Python语法的列表字符串(比如用单引号包裹键名),不是标准JSON格式
  • 你拼接的data2是一个普通字符串,json.dump(data2, f)会把它转义成JSON字符串值,最终文件里会出现类似"{\"info\":[{...}]}"的错误结构

最终输出效果

运行代码后,生成的JSON会完全符合你的期望:

{
    "info": [
        {
            "Id": 1,
            "FirstName": "Ken",
            "LastName": "Sánchez",
            "Info": {
                "MiddleName": "J"
            }
        },
        {
            "Id": 2,
            "FirstName": "Terri",
            "LastName": "Duffy",
            "Info": {
                "MiddleName": "Lee"
            }
        },
        {
            "Id": 3,
            "FirstName": "Roberto",
            "LastName": "Tamburello"
        },
        {
            "Id": 4,
            "FirstName": "Rob",
            "LastName": "Walters"
        },
        {
            "Id": 5,
            "FirstName": "Gail",
            "LastName": "Erickson",
            "Info": {
                "Title": "Ms.",
                "MiddleName": "A"
            }
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:45:55