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

PySpark中展开无数组结构体,生成tagname/key/value列的实现方法

如何将嵌套JSON转换为三列CSV格式

你可以通过以下两种常用方式实现需求,支持任意数量的外层标签和内层字段:

方法一:Python 脚本实现

利用Python标准库的json和csv模块,直接遍历JSON结构并生成目标格式:

import json
import csv

# 替换为你的JSON数据或读取文件路径
json_content = '''
{
"labels1":
     {"A":1,"B":2, "C":3},
"labels2":
     {"A":1,"B":2, "C":3}
}
'''

# 解析JSON数据
data = json.loads(json_content)

# 生成CSV文件
with open('result.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    # 写入表头
    writer.writerow(['tagname', 'key', 'value'])
    # 遍历外层标签和内层键值对
    for tagname, inner_data in data.items():
        for key, value in inner_data.items():
            writer.writerow([tagname, key, value])

执行后会生成result.csv,完全符合你需要的输出格式,无论内层有多少个字段都会自动遍历处理。

方法二:命令行工具 jq 实现

如果你习惯用命令行处理数据,jq是高效的选择,无需编写脚本:

假设你的JSON数据保存在input.json文件中,执行以下命令:

jq -r '["tagname","key","value"], to_entries[] | .key as $tag | .value | to_entries[] | [$tag, .key, .value] | @csv' input.json > output.csv

命令解释:

  1. ["tagname","key","value"]:构造CSV表头
  2. to_entries[]:将外层JSON对象转换为键值条目(格式为{"key":"labels1", "value": {...}})
  3. .key as $tag:把外层键存入变量$tag作为tagname
  4. .value | to_entries[]:将内层JSON对象也转换为键值条目
  5. [$tag, .key, .value]:组合成目标数组
  6. @csv:将数组转换为CSV格式,-r参数输出原始字符串(不带多余引号)

执行后会生成output.csv,效果和Python脚本一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:52:15