我有一個應用程序發送JSON對象(使用Prototype格式)到ASP服務器。在服務器上,Python 2.6的「json」模塊嘗試加載()JSON,但它在某些反斜槓組合上窒息。觀察:Python:json.loads逃生甩
>>> s
'{"FileExists": true, "Version": "4.3.2.1", "Path": "\\\\host\\dir\\file.exe"}'
>>> tmp = json.loads(s)
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
{... blah blah blah...}
File "C:\Python26\lib\json\decoder.py", line 155, in JSONString
return scanstring(match.string, match.end(), encoding, strict)
ValueError: Invalid \escape: line 1 column 58 (char 58)
>>> s[55:60]
u'ost\\d'
所以列58是轉義反斜槓。我認爲這是適當逃脫! UNC是\\host\dir\file.exe
,所以我只是斜槓加倍。但顯然這不是好事。有人可以協助嗎?作爲最後的手段,我正在考慮將\轉換爲/然後再轉回來,但這對我來說似乎是一個真正的黑客。
在此先感謝!
:) >>> S = R'{ 「FILEEXISTS」:真,「Version」:「4.3.2.1」,「Path」:「\\\\ host \\ dir \\ file.exe」}' >>> json.loads(s) {u'FileExists' :True,u'Path':u'\\\\ host \\ dir \\ file.exe',u'Version':u'4.3.2.1'} – Chris 2009-10-01 18:01:50
那麼r實際上在做什麼?我如何將它應用於已存儲爲「foo」的字符串。它是一種編碼? – Chris 2009-10-01 18:03:36
's =''打破格式。 – jfs 2009-10-01 18:04:48