首页 > 解决方案 > 在 Python 中解析 json 时如何处理双引号和反斜杠

问题描述

我有一个程序,它返回我将存储在一个字符串中并从中创建一个对象的 json 数据。

JSON是这样的

尝试.sh

#! /bin/bash

echo '{"Directory": "{hell\o}"}'

蟒蛇程序:

import subprocess,json
returned_value =subprocess.check_output("try.sh")
obj = json.loads(returned_value)
pprint.pprint(obj)

我收到错误消息

ValueError: Invalid \escape: line 1 column 21 (char 20)

如果输出中存在 \ 或 " ,考虑到我无法控制 try.sh ,我该如何处理它?

标签: pythonjson

解决方案


您可以在您的 returned_value 上使用 str.translate :

escaped_returned_value = returned_value.translate(str.maketrans({"\\":  r"\\"}))

输出 :

 '{"Directory": "{hell\\o}"}'

推荐阅读