Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将转义字符串转换为json_Python_Json_Python 3.x - Fatal编程技术网

Python 将转义字符串转换为json

Python 将转义字符串转换为json,python,json,python-3.x,Python,Json,Python 3.x,我有一个类似于'{'stringA\':“Hello Master's”}'的字符串。应将其转换为类似于{“stringA”:“Hello Master's”}的格式。为了实现它,我写了如下 input.replace("\'", "\"") 但是,它生成的输出为{“stringA”:“Hello Master”s}-这会打断我的字符串。本质上,我得到一个字符串转义的json字符串(带单引号),我需要将其转换为一个正确的json字符串,我可以在

我有一个类似于
'{'stringA\':“Hello Master's”}'
的字符串。应将其转换为类似于
{“stringA”:“Hello Master's”}
的格式。为了实现它,我写了如下

input.replace("\'", "\"")
但是,它生成的输出为
{“stringA”:“Hello Master”s}
-这会打断我的字符串。本质上,我得到一个字符串转义的json字符串(带单引号),我需要将其转换为一个正确的json字符串,我可以在该字符串上调用
json.loads
-我应该如何实现它?我需要忽略单引号(`)在我的json密钥和值中。

这个怎么样:

import re, json
a = '{\'stringA\': "Hello Master\'s"}'
replace = re.findall("\'.*\':", a)
for rep in replace:
    new_val = rep.replace("\'", "\"")
     a.replace(rep, new_val)

它的输出是“{”stringA:“Hello Master's”}”

该字符串不是有效的Json字符串,因为它使用单引号。但它是字典的有效Python表示形式,因此可以使用
literal\u eval
对其进行解析:

t = '{\'stringA\': "Hello Master\'s"}'
d = ast.literal_eval(t)
print(t)
js = json.dumps(d)
print(js)
作为输出提供:

{'stringA': "Hello Master's"}
{"stringA": "Hello Master's"}

“我可以在其上调用json.loads”您的意思是您实际上需要将字符串解析为dict吗?是的,这是正确的,有多种方法可以使用正则表达式实现这一点,但理想情况下,您希望修复在上游生成这些格式错误的json字符串的任何内容。