'u aldım. Kelimeleri ve cümleleri (bu durumda bir sözlük gibi) karşılaştırmak için difflib kullanmayı denedim ve sözlükteki anahtarlarla difflib çıktısını karşılaştırmaya çalıştığımda KeyError'u alıyorum. Birisi bana bunun neden olduğunu açıklayabilir mi? Difflib kullanmıyorken her şey iyi çalışıyor.Unicode dizesinde difflib kullanıldıktan sonra, KeyError
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import difflib
import operator
lst = ['król']
word = 'król'
dct = {}
for order in lst:
word_match_ratio = difflib.SequenceMatcher(None, word, order).ratio()
dct[order] = word_match_ratio
print order
print('%s %s' % (order, word_match_ratio))
sorted_matching_words = sorted(dct.items(), key=operator.itemgetter(1))
sorted_matching_words = str(sorted_matching_words.pop()[:1])
x = len(sorted_matching_words) - 3
word = sorted_matching_words[3:x]
print word
def translate(someword):
someword = trans_dct[someword]
print(someword)
return someword
trans_dct = {
"król": 'king'
}
print trans_dct
word = translate(word)
Beklenen çıkışı: kral
Bunun yerine alıyorum: Bu difflib ben böyle bir şey yapmak zaman çünkü garip bir şey yapıyor gibi görünüyor bunun neden
Traceback (most recent call last):
File "D:/Python/Testing stuff.py", line 64, in <module>
word = translate(word)
File "D:/Python/Playground/Testing stuff.py", line 56, in translate
someword = trans_dct[someword]
KeyError: 'kr\\xf3l'
anlamıyorum Bu, her şey gerektiği gibi çalışır.
uni = 'kr\xf3l'
print uni
def translate(word):
word = dct1[word]
print(word)
return word
dct1 = {
"król": 'king'
}
print dct1
word = translate('kr\xf3l')
print word
Unicode str'nin başına 'u' ... ''eklemeniz gerekiyor mu? @MarkTolonen 'assert repr ('kr \ xf3l') == 'kr \\ xf3l'' –
@ TadhgMcDonald-Jensen, hayır OP’in' sort'm_dosyası' kelimelerinden' hack’i almasıydı. str() 'orada yapılacak yanlış şeydi. –