2013-01-16 4 views
1

파이썬 사전에서 모든 \ r \ n을 제거하려고합니다. 그렇게하는 가장 쉬운 방법은 무엇입니까? 여기에 내가 노력하고있어입니다 -사전에서 특수 문자 제거

for key, values in productDictionary.items() : 
    key.strip() 
    values.strip() 
    key.strip('"\"r') 
    key.strip('\\n') 
    values.strip('\\r\\n') 
print productDictionary 

을 그리고 출력은 여전히 ​​동일합니다 :

{'': '34.8\r\n', 
    'Mozzarella di Giovanni\r\n': '34.8\r\n', 
    'Queso Cabrales\r\n': '14\r\n', 
    'Singaporean Hokkien Fried Mee\r\n': '9.8\r\n' 
} 

편집 - 내 사전 순간에 다음과 같이 찾고 있습니다.

+2

코드에서 실제로 목록 ('.items()')을 반복하면서이 목록에서 검색된 변수를 수정해도'dict'에는 영향을 미치지 않습니다. –

+0

Strip은 해당 문자가 제거 된 문자열을 반환하지만 문자열은 수정하지 않습니다. –

답변

6

당신은 str.strip()를 사용할 수 있습니다

str.strip() 인수와 함께 사용, 선도 및 공백을 후행의 모든 ​​유형을 제거합니다. str.strip()

S.strip에

>>> productDictionary={'': '34.8\r\n', 
    'Mozzarella di Giovanni\r\n': '34.8\r\n', 
    'Queso Cabrales\r\n': '14\r\n', 
    'Singaporean Hokkien Fried Mee\r\n': '9.8\r\n' 
} 

>>> productDictionary=dict(map(str.strip,x) for x in productDictionary.items()) 
>>> print productDictionary 
>>> 
{'': '34.8', 
'Mozzarella di Giovanni': '34.8', 
'Queso Cabrales': '14', 
'Singaporean Hokkien Fried Mee': '9.8'} 

help() ([문자]) -> 문자열 또는 유니

복귀 선도 제거 공백 을 후행 문자열 S의 사본. chars가 주어지고 None이 아닌 경우 문자 대신에 문자를 제거하십시오.

clean_dict = {key.strip(): item.strip() for key, item in my_dict.items()} 

strip() 함수 앞 스트링의 뒤에서 바꿈, 공백 및 탭을 제거 : 문자는 유니 코드 인 경우, S가 사전에 이해 사용

+0

같은 문제가 발생했습니다. 나는 그 질문을 편집했다. –

+0

@AshishAgarwal 당신이하고있는 일이 정확하지 않습니다, 제 코드가 잘 작동합니다. –

6

스트리핑 전에 유니 코드로 변환 할 .

+0

같은 문제가 발생했습니다. 내가 질문을 편집했습니다 –

+0

이 독해 독해력이 올바르지 않습니다. '구문 오류'. –

+0

@AshwiniChaudhary - 아내, 고칠 것입니다. 키와 항목 사이에 쉼표가 아닌 콜론이 필요했습니다. – Michael0x2a