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 、区切り文字: 行 1 列 26 (文字 25)

しかし、生の文字列リテラルを使用すると、問題なく動作します。すなわち

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 に答える