我有一个程序可以返回json数据,该数据将存储在字符串中并从中创建对象。
JSON就是这样
try.sh
#! /bin/bash
echo '{"Directory": "{hell\o}"}'
Python程序:
import subprocess,json
returned_value =subprocess.check_output("try.sh")
obj = json.loads(returned_value)
pprint.pprint(obj)
我收到误差
ValueError:无效\ escape:第1行第21列(字符20)
如果输出中存在\或“,考虑到对try.sh的控制权,我该如何处理?
答案 0 :(得分:1)
您可以在您的return_value上使用str.translate:
escaped_returned_value = returned_value.translate(str.maketrans({"\\": r"\\"}))
输出:
'{"Directory": "{hell\\o}"}'
答案 1 :(得分:-1)
在[59]中:data =“ {hell \ o}”
在[60]中:数据
出[60]:“ {hell \ o}”
在[61]中:json.dumps(data)
出[61]:'“ {hell \\ o}”'
请参阅此JSON中使用的特殊字符列表:
\b Backspace (ascii code 08) \f Form feed (ascii code 0C) \n New line \r Carriage return \t Tab \" Double quote \\ Backslash character