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

如何将非结构化格式文本转换为标准JSON格式 附示例及问题说明

非结构化单行JSON文本转标准JSON实现方案

首先注意:你给出的预期输出外层使用{}不符合JSON规范,多个平级对象的集合外层需要使用数组标识[],下述方案输出的内容完全符合RFC 8259标准的JSON格式要求。

核心处理逻辑

  • 按换行符拆分原始输入,过滤空行和纯注释行
  • 逐行移除末尾的//格式注释,提取有效对象片段
  • 使用安全字面量解析工具处理单双引号混用问题,无需手动替换引号
  • 将所有解析后的对象存入数组后直接序列化,自动处理格式与分隔符,不会出现末尾多余逗号的问题

可直接运行的Python实现

import json
import ast

# 此处替换为你的实际输入文本
input_text = """{'key1':'value1','msg1':"content1"} //line 1
{'key2':'value2','msg2':"content2"} //line 2
{'key3':'value3','msg3':"content3"} //line 3
"""

result = []
for line in input_text.splitlines():
    line = line.strip()
    if not line:
        continue
    # 移除行内注释
    pure_content = line.split("//")[0].strip()
    # 安全解析Python风格字面量,自动兼容单引号、双引号混用场景
    parsed_obj = ast.literal_eval(pure_content)
    result.append(parsed_obj)

# 序列化输出标准JSON,自动处理缩进、逗号,无多余格式问题
output_json = json.dumps(result, indent=2, ensure_ascii=False)
print(output_json)

输出结果

[
  {
    "key1": "value1",
    "msg1": "content1"
  },
  {
    "key2": "value2",
    "msg2": "content2"
  },
  {
    "key3": "value3",
    "msg3": "content3"
  }
]

原有方案失败原因说明

  1. 直接对原始文本调用json.dumps属于方法误用,该方法的作用是将Python内置对象序列化为JSON字符串,不具备原始文本解析能力
  2. 手动追加逗号容易出现末尾多余逗号的语法问题,通过先解析为Python数组再序列化的方式,可以完全规避该类格式错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:04