如何将带有反斜杠的字符串转换为json

时间:2016-01-08 17:33:14

标签: python json

如何使用u'{\'name\': "User", \'valid\': False}'将此字符串.loads()转换为json。

我得到了

*** ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我不想使用.eval()ast_literals()

1 个答案:

答案 0 :(得分:3)

看起来不像是有效的JSON - 应该有双引号字符串而不是单引号字符串而false而不是Falseast.literal_eval()会按原样处理它,但如果您想使用json.loads(),则必须在加载之前修复它,对于此示例输入:

>>> import json
>>>
>>> s = u'{\'name\': "User", \'valid\': False}'
>>> s = s.replace("\'", '"').replace("False", "false")
>>> json.loads(s)
{u'valid': False, u'name': u'User'}

请注意,这不太可靠。