首页 > 解决方案 > 将转义字符串转换为 json

问题描述

我有一个像'{\'stringA\': "Hello Master\'s"}'. 这应该转换为格式,如{"stringA": "Hello Master's"}. 为了实现它,我写如下

input.replace("\'", "\"")

但是,它产生的输出为{"stringA": "Hello Master"s"}- 这会破坏我的字符串。本质上,我得到了一个字符串转义的 json 字符串(带单引号),我需要将其转换为正确的 json 字符串,我可以调用json.loads它 - 我应该如何实现它?我需要忽略 json 中的键和值中的单引号(`)。

标签: pythonjsonpython-3.x

解决方案


该字符串不是有效的 Json 字符串,因为它使用单引号。然而,它是字典的有效 Python 表示形式,因此您可以使用以下命令对其进行解析literal_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"}

推荐阅读