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

如何合并从文件中读取的两个JSON对象为一条完整记录

问题说明

从文件读取到的内容是连续拼接的多个独立JSON对象,所有对象共同组成一条完整记录,直接调用pandas.read_json()解析会触发格式错误,示例如下:

  • 原始输入内容:
{"a":1,"b":2,"c":3}{"x":[100],"y":"123"}
  • 期望得到的合并后结果:
{
   "a":1,
   "b":2,
   "c":3,
   "x":[100],
   "y":"123"
}
实现方案

不要直接把原始字符串传给pandas.read_json(),先借助Python标准库json模块的原生解码器拆分连续JSON片段,合并所有键值对后再传入pandas即可,可直接运行的代码如下:

import json
import pandas as pd

# 替换为你从文件中读取到的原始字符串
raw_content = '{"a":1,"b":2,"c":3}{"x":[100],"y":"123"}'

decoder = json.JSONDecoder()
full_record = {}
current_pos = 0

# 循环解析字符串中所有连续的JSON对象
while current_pos < len(raw_content):
    json_obj, current_pos = decoder.raw_decode(raw_content, current_pos)
    full_record.update(json_obj)

# 打印验证合并结果
print(json.dumps(full_record, indent=4, ensure_ascii=False))

# 转换为pandas DataFrame
df = pd.DataFrame([full_record])
注意事项
  • 不推荐用正则匹配}{拆分字符串的方案:如果JSON的字符串值里本身包含}{字符,正则拆分就会出错,raw_decode()是按照JSON语法规则做解析的,不会出现这类问题,稳定性更高
  • 如果你的文件里有多行这样的连续拼接JSON,逐行读取后按上述逻辑处理即可
  • 合并时如果不同JSON对象存在重复键,后面解析到的键值会覆盖前面的,和JSON的常规解析逻辑一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:51:23