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

如何将SQL导出的JSON数据包装为以products为键的结构?

给JSON文件添加"products"主键包装的方法

首先注意:你给出的目标JSON存在语法错误——"products"对应的两个对象没有用数组[]包裹,这会导致JSON解析失败。正确的目标结构应该是"products"对应一个产品对象数组,示例如下:

[
  {
    "products": [
      {
        "type": "N1001",
        "view_code": "english",
        "short": "xy",
        "product": "simple",
        "amount": "4"
      },
      {
        "type": "N1001",
        "view_code": "english",
        "short": "xy",
        "product": "simple",
        "amount": "4"
      }
    ]
  }
]

下面提供两种实现方法:

方法一:手动修改(适合少量文件)

  1. 先修正原JSON的语法问题:删除原数组中最后一个对象末尾的多余逗号(原示例里"amount": "4"后面的逗号会导致JSON解析错误)。
  2. 将原数组内的所有产品对象,整体放到一个新数组中。
  3. 创建一个新对象,添加"products"键,值为刚才的新数组。
  4. 把这个新对象放入外层数组,完成包装。

方法二:Python脚本自动处理(适合批量或大量数据)

如果需要处理多个文件或大量数据,用脚本效率更高:

import json

# 读取原JSON文件
with open('input.json', 'r', encoding='utf-8') as f:
    # 若原JSON有多余逗号,可改用demjson库解析:import demjson; original_data = demjson.decode(f.read())
    original_data = json.load(f)

# 构造新的JSON结构
target_data = [{"products": original_data}]

# 若需要统一修改type字段为"N1001",执行以下循环
for product in target_data[0]["products"]:
    product["type"] = "N1001"

# 写入到新文件
with open('output.json', 'w', encoding='utf-8') as f:
    json.dump(target_data, f, indent=2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:35:27