Python去除JSON文件双重编码产生的多余引号方法
解决JSON双重编码的还原问题
你的问题本质是JSON被双重转义+额外包裹引号导致格式异常,下面提供几种实用处理方式:
方法1:Python快速处理
有Python环境的话,几行代码就能搞定:
import json # 原始内容(如果是带HTML转义的字符串,先替换"为双引号) raw_content = '"{"created_at":"2022-06-03T13:00:52.000000Z","created_by":"foo","event":"foo"}"' # 替换HTML转义的双引号 raw_content = raw_content.replace('"', '"') # 去掉外层可能存在的单引号和多余双引号 raw_content = raw_content.strip("'\"") # 解析并输出标准JSON normal_json = json.dumps(json.loads(raw_content), indent=2) print(normal_json)
运行后输出格式化的正常JSON:
{ "created_at": "2022-06-03T13:00:52.000000Z", "created_by": "foo", "event": "foo" }
方法2:jq命令行工具处理
习惯用命令行的话,jq是处理JSON的神器:
- 将原始内容存入
bad.json文件,内容为:
'"{"created_at":"2022-06-03T13:00:52.000000Z","created_by":"foo","event":"foo"}"'
- 执行命令:
cat bad.json | sed 's/"/"/g' | tr -d "'" | jq .
sed 's/"/"/g':把HTML转义的双引号还原tr -d "'":去掉外层的单引号jq .:自动解析并格式化输出标准JSON
方法3:手动处理(适合少量内容)
如果内容不多,直接两步操作:
- 把所有
"替换成普通双引号" - 去掉字符串首尾的单引号
'和外层多余的双引号"
这样就能得到你需要的标准JSON格式。
内容的提问来源于stack exchange,提问作者wihe
相关产品推荐
相关产品推荐

