将反斜杠单引号 \' 转换为反斜杠双引号 \" for JSON

Converting backslash single quote \' to backslash double quote \" for JSON

我有一个 JSON 文件已转换为 Python 中的字符串。不知何故双引号被单引号取代了。

{\'MyJSON\': {\'Report\': \'1\' ....

我需要转换我的字符串,使其采用以下格式:

{\"MyJSON\": {\"Report\": \"1\" ....

我的问题是使用 str.replace,我不知道如何将单引号转换为双引号,因为两个引号都被转义了。

我的最终目标是能够将字符串放入 json.loads 以便我可以漂亮地打印它。


尝试次数:

txt.replace(r"\'", r'\"')
> "{'MyJSON': {'Report': '1'"
txt.replace("\"", "\'")
> "{'MyJSON': {'Report': '1'"

如果我将字符串保存到 txt 文件中,它在预览中显示为:

{'MyJSON': {'Report': '1' ...

所以我认为我真正需要做的是将'替换为“


我决定使用 ast.literal_eval(txt),它可以将我的字符串转换为字典。从那里,json.loads(json.dumps(dict)) 让我到达 JSON

我是说,

my_string = "\"\'"
print(my_string.replace("\'", "\""))

工作得很好

编辑:我不是说直接使用它,它只是一个概念验证。在我的替换是相反的。我已经更新了这个片段,这样它就可以直接放入您的代码中。再试一次

与其专注于反斜杠以尝试将 json 字符串/字典 str“破解”为 JSON,更好的解决方案是一步一步开始将我的字典字符串转换成字典。

import ast
txt = ast.literal_eval(txt) # convert my string to a dictionary
txt = json.loads(json.dumps(txt)) # convert my dict to JSON