Я не могу запустить следующую функцию:
match, match_score = process.extractOne(score, pct_dict.keys())
Я получаю ошибку пробела, которую я не могу устранить.Любая идея, что вызывает это?
Что он должен делать: если счет равен 15, он должен вернуть 0,026
Ошибка:
Ошибка: выход = self.func (* resolved_args, ** resolved_kwargs) wnas1
|Файл "/code/cleveland/templatetags/percentiles_ratings.py", строка 32, в get_percentile_standard wnas1 |match, match_score = process.extractOne (оценка, pct_dict.keys ()) wnas1 |Файл "/usr/local/lib/python3.7/site-packages/fuzzywuzzy/process.py", строка 220, в extractOne wnas1 |вернуть max (список лучших, ключ = лямбда i: i [1]) wnas1 |Файл "/usr/local/lib/python3.7/site-packages/fuzzywuzzy/process.py", строка 78, в extractWithoutOrder wnas1 |processing_query = процессор (запрос) wnas1 |Файл "/usr/local/lib/python3.7/site-packages/fuzzywuzzy/utils.py", строка 95, в full_process wnas1 |string_out = StringProcessor.replace_non_letters_non_numbers_with_whitespace (s) wnas1 |Файл "/usr/local/lib/python3.7/site-packages/fuzzywuzzy/string_processing.py", строка 26, в replace_non_letters_non_numbers_with_whitespace wnas1
|return cls.regex.sub ("", a_string)
Код:
from __future__ import unicode_literals
from django import template
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
register = template.Library()
@register.simple_tag
def get_perc(score):
MATCH_THRESHOLD = 80
pct_dict = {14: 0.016, 14.7: 0.021, 15.3: 0.026, 16: 0.034, 16.7: 0.04, 17.3: 0.05, 18: 0.07, 18.7: 0.09,
19.3: 0.11, 20: 0.13, 20.7: 0.17, 21.3: 0.21, 22: 0.26, 22.7: 0.31, 23.3: 0.38, 24: 0.47}
if not score:
return '--'
elif score < 26.7:
return '<1'
match, match_score = process.extractOne(score, pct_dict.keys())
if match_score >= MATCH_THRESHOLD:
return pct_dict[match]
else:
return '--'