4

我正在尝试执行以下代码:

str_2_load='{"source":"\u003ca href=\"http:\/\/twitter.com\" \u003eTwitter \u003c\/a\u003e"}'
json.loads(str_2_load)

收到以下错误:

文件“C:\Python27\lib\json\decoder.py”,第 381 行,在 raw_decode obj 中,end = self.scan_once(s, idx) ValueError: Expecting , delimiter: line 1 column 26 (char 25)

但是,如果我使用原始字符串文字,它可以正常工作。IE

str_2_load=r'{"source":"\u003ca href=\"http:\/\/twitter.com\" \u003eTwitter \u003c\/a\u003e"}'
json.loads(str_2_load)

由于str_2_load是动态分配的,我正在寻找解决上述问题的方法。

4

2 回答 2

-2

将所有 '\' 替换为 '\\':

>>> str_2_load='{"source":"\\u003ca href=\\"http:\\/\\/twitter.com\\" \\u003eTwitter    \\u003c\\/a\\u003e"}'
>>> json.loads(str_2_load)
{u'source': u'<a href="http://twitter.com" >Twitter </a>'}
于 2013-07-02T06:36:13.450 回答
-3

我相信如果您通过在字符串的开头添加“r”来使 str_2_load 成为原始字符串。不知何故,这与正则表达式有关。

str_2_load=r'{"source":"\u003ca href=\"http:\/\/twitter.com\" \u003eTwitter \u003c\/a\u003e"}'
json.loads(str_2_load)

#output {'source': '<a href="http://twitter.com" >Twitter </a>'}
于 2019-04-30T01:40:02.837 回答