Python JSON对象特殊字符处理:修复格式错误的JSON字符串
修复格式错误的JSON字符串实现思路
核心问题分析
输入的JSON是一个仅包含单个字符串元素的数组,这个字符串内部是两个JSON对象的结构,但被额外引号包裹、内部双引号被转义,还带有多余换行,导致整体不是合法的对象数组。我们需要剥离外层冗余结构,还原内部JSON语法并重新组合成合法数组。
实现步骤
- 步骤1:提取内部字符串
用JSON解析工具加载输入的数组,直接取出数组中唯一的字符串元素。 - 步骤2:还原双引号
将字符串中所有转义双引号\"替换为普通双引号",恢复JSON对象的合法语法格式。 - 步骤3:清理冗余格式
移除字符串中的换行符、连续多余空格,让结构更紧凑(保留必要空格不影响解析)。 - 步骤4:重组合法JSON数组
将处理后的字符串用方括号[]包裹,得到标准的JSON对象数组。
代码示例(Python)
import json # 输入的原始JSON字符串(已去除<pre><code>标签) input_str = '["{\n \"id\": \"1234\", \n \"name\":\"aaa\", \n \"dept\": \"IT\"\n}, \n{\n \"id\": \"1234-AB\", \n \"name\":\"bbb\", \n \"dept\": \"IT\"\n}\n"]' # 解析输入数组,取出内部字符串 inner_content = json.loads(input_str)[0] # 替换转义引号,清理换行和多余空格 cleaned_content = inner_content.replace('\\"', '"').strip().replace('\n', '').replace(' ', ' ') # 组合成合法JSON数组 final_json = f"[{cleaned_content}]" print(final_json) # 输出结果:[{"id": "1234", "name":"aaa", "dept": "IT"}, {"id": "1234-AB", "name":"bbb", "dept": "IT"}]
验证方法
使用json.loads(final_json)验证输出是否为合法JSON,若未抛出异常则说明处理成功。
内容的提问来源于stack exchange,提问作者Alex_python
相关产品推荐
相关产品推荐

