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

如何将Pandas DataFrame导出为指定结构的JSON格式?

解决Pandas导出JSON时字符串列表转真实列表的问题

问题描述

现有如下Pandas DataFrame:

import pandas as pd

data = {
  "ID": [123123, 222222, 333333],
  "Main Authors": ["[Jim Allen, Tim H]", "[Rob Garder, Harry S, Tim H]", "[Wo Shu, Tee Ru, Fuu Wan, Gee Han]"],
  "Abstract": ["This is paper about hehe", "This paper is very nice", "Hello there paper from kellogs"],
  "paper IDs": ["[123768, 123123]", "[123432, 34345, 353545, 454545]", "[123123, 3433434, 55656655, 988899]"],
}
df = pd.DataFrame(data)

使用df.to_json(orient='records')导出后,Main Authors和paper IDs仍为字符串格式的列表,不符合需求。需要将这两列转为真实的列表,同时把ID转为字符串类型,最终导出的JSON结构如下:

{"ID": "123123", "Main Authors": ["Jim Allen", "Tim H"], "Abstract": "This is paper about hehe", "paper IDs": ["123768", "123123"]}
{"ID": "222222", "Main Authors": ["Rob Garder", "Harry S", "Tim H"], "Abstract": "This paper is very nice", "paper IDs": ["123432", "34345", "353545", "454545"]}
{"ID": "333333", "Main Authors": ["Wo Shu", "Tee Ru", "Fuu Wan", "Gee Han"], "Abstract": "Hello there paper from kellogs", "paper IDs": ["123123", "3433434", "55656655", "988899"]}

解决步骤

1. 解析字符串列表为真实列表

定义通用解析函数,处理字符串形式的列表:

def parse_str_list(s, convert_to_str=False):
    # 去除首尾方括号,分割元素并清理空格
    items = [item.strip() for item in s.strip('[]').split(',')]
    # 按需将元素转为字符串(比如paper IDs的数字)
    if convert_to_str:
        items = [str(item) for item in items]
    return items

2. 处理目标列

将函数应用到需要转换的列:

# 处理作者列,保留原字符串格式
df['Main Authors'] = df['Main Authors'].apply(parse_str_list)
# 处理paper IDs列,将数字转为字符串
df['paper IDs'] = df['paper IDs'].apply(lambda x: parse_str_list(x, convert_to_str=True))

3. 转换ID列为字符串

df['ID'] = df['ID'].astype(str)

4. 导出符合要求的JSON

如果需要每行一个独立JSON对象(匹配需求示例),使用lines=True参数:

result_json = df.to_json(orient='records', lines=True, force_ascii=False)
print(result_json)

如果需要标准JSON数组格式,去掉lines=True即可:

result_json_array = df.to_json(orient='records', force_ascii=False)

最终效果

执行上述代码后,导出的JSON会将Main Authors和paper IDs转为真实的列表类型,ID转为字符串,完全符合需求格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:31:23