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

如何使用Python将格式异常的类JSON文件转换为CSV?

格式异常类JSON转CSV的解决方案

你的文件核心问题是存在不符合JSON规范的语法(比如"type": b里的b未加引号),直接用pandas读取会报错,得先预处理修复语法,再完成转换,具体步骤如下:

1. 预处理修复JSON语法错误

用正则表达式批量替换所有未加引号的标识符,将其转为合法的JSON字符串:

import re

# 读取原文件内容
with open('your_input_file.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# 匹配"key": 标识符的格式,给标识符加上双引号
fixed_content = re.sub(r'("\w+"):\s*([a-zA-Z_]\w*)', r'\1: "\2"', content)

# 写入修复后的临时文件
with open('fixed_temp.json', 'w', encoding='utf-8') as f:
    f.write(fixed_content)

2. 用pandas读取并导出CSV

修复后的文件可被pandas正常识别,直接将嵌套的pattern字段转为字符串存储(方便CSV格式保留结构):

import pandas as pd

# 读取修复后的JSON文件
df = pd.read_json('fixed_temp.json')

# 将嵌套的pattern对象转为字符串格式
df['pattern'] = df['pattern'].apply(str)

# 导出为CSV
df.to_csv('output.csv', index=False, encoding='utf-8')

特殊情况备选方案

如果文件还有其他复杂的格式异常(比如未闭合括号、特殊字符逃逸问题),可以用专门兼容非严格JSON的demjson库:

import demjson
import pandas as pd

# 读取原文件
with open('your_input_file.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# 解析非严格JSON
data = demjson.decode(content)

# 转DataFrame并导出
df = pd.DataFrame(data)
df['pattern'] = df['pattern'].apply(str)
df.to_csv('output.csv', index=False, encoding='utf-8')

注:使用前需先安装库:pip install demjson

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:48:21