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

如何将含reviews数组的JSON转为指定格式CSV?或用Pandas解决?

用Pandas处理JSON转CSV的解决方案

直接用Pandas的explode和json_normalize就能搞定,以下是完整代码:

import pandas as pd
import json
from io import StringIO

# 你的JSON数据(如果是从本地文件读取,直接用pd.read_json('your_file.json')即可)
json_data = '''[{
    "serial":  "63708940a8d291c502be815f",
    "reviews": [
      {
        "name": "shadman",
        "rating": 4,
        "_id":"6373d4eb50cff661989f3d83"
      },
      {
        "name": "niloy1",
        "rating": 3,
        "_id": "6373d59450cff661989f3db8"
      }
    ]
}]'''

# 读取JSON到DataFrame
df = pd.read_json(StringIO(json_data))

# 炸开展开reviews数组,每个review占一行,保留对应的serial值
df_exploded = df.explode('reviews', ignore_index=True)

# 把reviews列里的字典展开为单独的列
reviews_df = pd.json_normalize(df_exploded['reviews'])

# 合并serial列和展开后的review列
final_df = pd.concat([df_exploded['serial'], reviews_df], axis=1)

# 导出为目标格式的CSV
final_df.to_csv('output.csv', index=False)

步骤说明:

  1. 读取JSON:如果是本地JSON文件,直接替换成pd.read_json('你的文件名.json')即可,这里用字符串示例是为了方便演示。
  2. 炸开展开数组:explode('reviews')会把每个reviews对象拆成单独一行,同时保留对应的serial值,ignore_index=True重置行索引避免重复。
  3. 解析字典列:pd.json_normalize()把reviews列里的字典转换成独立的列(name、rating、_id)。
  4. 合并并导出:将serial列和解析后的review列合并,最后导出CSV时用index=False避免把行索引写入文件。

生成的CSV格式完全符合需求,每行对应一个reviews对象,列名就是你要的serial、name、rating、_id。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:05:59