2014-01-23 5 views
3

사전 키는 사용하는 객체 :KeyError를 : 백 슬래시 파이썬에서 내가 요청의는 .text에서 json.loads()로 만든 사전에서 값을 검색 할 파이썬에 노력하고

'\/' 

을 구분 같이 일부 사전 키. 사전은 제 통제하에 있지 않은 다른 프로그램의 표준 출력입니다.

내가 사용하려고하면 :

dictionary['text\/text'] 

IT는 KeyError를 생성하고 더

'text\\/text' 

키가 없다는 것을 말한다. 삽입 된 이중 백 슬래시에 주목하십시오.

이 나는 ​​시도했다 :

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

나는이 작업을 얻을 수없는 것. 사전 전체의 텍스트를 구문 분석하고 '/'를 모두 바꾸지 않고도이 작업을 수행 할 수있는 방법이 있어야합니다. 어떤 아이디어?

편집 : 이것은 내 부분에 어리석은 실수였습니다. request.text에서 키 값을 읽었습니다. 여기서는 슬래시 앞에 여분의 백 슬래시가 인쇄되었습니다. 마르티네 피터스 (Martijn Pieters)의 발언은이 문제에 대한 직접적인 언급을했다.

+7

'dictionary.keys을 무엇을()'인쇄를? –

+2

문자열을 다시 에코 할 때 파이썬이 항상 이스케이프 코드를 이스케이프하기 때문에 키 표현은 이중 슬래시를 사용합니다. 그 값은 완전히 맞습니다. –

+5

''text/text ''을 아직 사용해 보지 않으셨습니까? –

답변

0

나는 유휴 (2.7.6)에서 시도하고 유효한 같습니다

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

하지만 OP의 문제에는 도움이되지 않습니다. – jayelm

+0

@ jmu303 : 예, 문제를 재현하려고 시도하고 있었지만 할 수 없다는 것을 알았습니다. 그래서 나는 그것이 가치 있다고 생각했습니다. 나는 네가 어디서 왔는지를 본다. 나는 시도하는 대답을 (더) 건설적으로 만드는 방법을 모르겠다. –