2014-11-26 2 views
0

간단하지만 별난 질문이 있습니다. {: '파일 1 \ \ 11.1.2.3' 'FILE_PATH'} 사용하여 다음과 같은 문장 :값에 하나의 백 슬래시가있는 파이썬 스타일 사전을 표시하는 방법은 무엇입니까?

>>> mydict = {'file_path': '\\\\11.1.2.3\\file1'} 
>>> mydict 
{'file_path': '\\\\11.1.2.3\\file1'} 

내가 값 문자열에 R 앞에 추가 : 나는 같은 사전을 표시 할

>>> mydict = {'file_path': r'\\11.1.2.3\file1'} 
>>> mydict 
{'file_path': '\\\\11.1.2.3\\file1'} 

결과는 앞의 예상과 같지만 예상치 못한 결과입니다.

누구나 값만 인쇄하지 않고 사전을 표시하는 방법을 제공 할 수 있습니까? 미리 감사드립니다!

답변

0

자신의 인쇄 기능 확인 :

mydict = {'file_path1': r'\\11.1.2.3\file1', 'file_path2': r'\\111232.3\blabla'} 
pairs = [] 
for k,v in mydict.items(): 
    pairs.append("'%s': '%s'" % (k,v)) 
print '{' + ', '.join(pairs) + '}' 

을 아니면 하나의 특정 키를 원하는 경우.

mydict = {'file_path1': r'\\11.1.2.3\file1', 'file_path2': r'\\111232.3\blabla'} 
pairs = [] 
for k,v in mydict.items(): 
    if k == 'file_path1': 
     pairs.append("'%s': '%s'" % (k,v)) 
print '{' + ', '.join(pairs) + '}' 

사용하여 이해 :

+0

올바른 방법입니다. 감사! – Allan

0

당신이 정말 탈출 문자로 변환합니다.

>>> import codecs 
>>> mydict = {'file_path': '\\\\11.1.2.3\\file1'} 
>>> print(codecs.getdecoder("unicode_escape")(str(mydict))[0]) 
{'file_path': '\\11.1.2.3\file1'} 
+0

이 방법은 하나의 키만 사용하여 사전을 인쇄하는 데 적합합니다. 사전에 여러 개의 키가있는 하나의 키를 인쇄하는 것은 효과적이지 않습니다. – Allan

관련 문제