python - 在 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 ,我该如何处理它?
解决方案
您可以在您的 returned_value 上使用 str.translate :
escaped_returned_value = returned_value.translate(str.maketrans({"\\": r"\\"}))
输出 :
'{"Directory": "{hell\\o}"}'
推荐阅读
- reactjs - Antd Date:如何在时刻 js 中设置有效的空日期
- macos - 错误:命令“gcc”失败,退出状态为 1 -Python3.7 MacOs Catalina
- c# - 如何编写代码来实现这些任务?
- html - 将选择元素和 div 设置为相同的高度
- c++ - 't' 声明中的两个或多个数据类型
- laravel - 文件夹、文件夹关系和文件 laravel
- javascript - “react-native-canvas”返回“错误:必须使用 Canvas 实例初始化图像”
- ruby-on-rails - Rails 链接到一个很棒的字体图标
- c - 我想删除二叉树搜索,但出现错误
- swift - 没有firebase的推送通知