2013-01-16 255 views
1

我想从Python字典中删除所有\ r \ n。最简单的方法是什么?我的字典是这样看的那一刻 -删除字典中的特殊字符

{'': '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' 
} 

编辑:这里就是我想 -

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

和输出仍然是相同的。

+2

在你的代码中,你实际上遍历一个列表('.items()'),修改从这个列表中检索的变量不会影响'dict'。 –

+0

Strip返回已删除这些字符的字符串,但不修改该字符串。 –

回答

6

您可以使用str.strip()

不带参数使用时

str.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()str.strip()

S.strip([字符]) - >字符串或Unicode

返回琴弦S与前缘和后除去空白 的副本。如果给出字符而不是无,请删除字符 中的字符。如果字符是unicode,S将被转换 之前为Unicode剥离

+0

同样的问题。我编辑了这个问题。 –

+0

@AshishAgarwal你在做什么是不正确的,我的代码工作正常。 –

6

使用字典理解:

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

strip()函数删除换行符,空格和从前面和一个串的背面突出部。

+0

同样的问题。我编辑了这个问题 –

+0

这个词典的理解是不正确的,'语法错误'。 –

+0

@AshwiniChaudhary - 呃,我修好了。它需要密钥和项目之间的冒号,而不是逗号。 – Michael0x2a