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字符串的任何内容。