将反斜杠单引号 \' 转换为反斜杠双引号 \" 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
我有一个 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