2014-01-23 54 views
3

我想在Python從與來自請求的.text json.loads()創建的字典檢索值對象,它的用途:KeyError異常:反斜槓在Python解釋主要

'\/' 

在一個分離器一些字典鍵。該字典是來自另一個不受我控制的程序的標準輸出。

如果我嘗試使用:

dictionary['text\/text'] 

它會產生一個KeyError異常,並說沒有

'text\\/text' 

關鍵。注意它插入的雙反斜槓。

我曾嘗試:

r'text\/text', 'text\\/text', 'text'+chr(92)+chr(47)+'text', etc 

我似乎無法得到這個工作。必須有一些方法才能做到這一點,而不必解析整個字典的文本並替換所有出現的'/'。有任何想法嗎?

編輯:這是我的一個愚蠢的錯誤。我正在讀取request.text中的鍵值,其中在正斜槓之前打印了一個額外的反斜槓。 Martijn Pieters的評論直接引發了這個問題。

+7

什麼'dictionary.keys()'打印? –

+2

該鍵的表示使用雙斜槓,因爲Python在將字符串回送給您時總是轉義轉義碼。該值是完全正確的。 –

+5

你有沒有試過「文字/文字」呢? –

回答

0

我試圖在空閒(2.7.6),它看起來有效:

>>> d={'text\/text':'test'} 
>>> d 
{'text\\/text': 'test'} 
>>> d['text\/text'] 
'test' 
>>> 
+2

但這並不能真正幫助OP的問題。 – jayelm

+0

@ jmu303:是的,我試圖重現問題,並發現我不能,所以我認爲這可能是有價值的。我看到你來自哪裏,但我不確定如何讓我的嘗試答案更具建設性。 –