2011-01-11 34 views
0

嗨,我一直在嘗試這一段時間,現在還沒有結果。 我有一個dict = {'Å':'a', 'Ä':'a', 'Ö':'0', 'å':'a', 'ä':'a', 'ö':'o'}掃描python中的字典列表

input = lxml.etree.parse(inputxml) 
for block in input.xpath('//PAGE/BLOCK/TEXT'): 
    J = block.xpath('TOKEN/text()') 
    current = 0 
    line = "" 
    while current < len(J): 
     A = J[current] 
     current += 1 

我需要掃描與字典,找到非英文字母和英文字母

for i in A: 
     if(dict.has_key(i)): 
       ReplaceWord= A.replace(i,dict[i]) 

取代它,但是這是不工作

+5

0%?你真的很喜歡*沒有*你收到的答案嗎? – 2011-01-11 15:39:13

+3

在處理類似這樣的事情時,有很多問題。最完整的似乎Alex Martellis的答案在http://stackoverflow.com/questions/1382998/latin-1-to-ascii。 – 2011-01-11 15:41:41

+0

這不是我不喜歡的安東尼我是新來的蟒蛇我只是dnt知道如何實現ans – Rakesh 2011-01-11 17:28:39

回答

3

不你詢問了什麼,但看起來你可能會對它感興趣:Unidecode是一個專門用於將任何字符序列減少爲最相似的ASCII字符的模塊。

>>> import unidecode # to install: `pip install unidecode` 
>>> line = u"Flyttbara hyllplan anpassar förvaringen så" 
>>> unidecode.unidecode(line) 
u'Flyttbara hyllplan anpassar forvaringen sa' 
+0

感謝隊友這解決了我的問題 – Rakesh 2011-01-14 14:01:56

2

translate是你所需要的。

d=str.maketrans('ÅÄÖåäö','aaoaao') 
s.translate(d) 
2

兩者在Python 3和2.x:

letters = {'Å':'a', 'Ä':'a', 'Ö':'0', 'å':'a', 'ä':'a', 'ö':'o'} 
line = "Flyttbara hyllplan anpassar förvaringen så" 
for c in letters: 
    line = line.replace(c, letters[c])