FuzzyWuzzy throws TypeError only in flask app FuzzyWuzzy在flask应用中仅仅引发TypeError

2024-06-28 14:51:56 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在heroku上构建一个基于烧瓶的搜索工具,以检查大学的排名。为此,我使用fuzzyfuzzy遍历列表列表并返回相关的排名。你知道吗

@app.route('/results', methods=["POST"])
def results():
    uniname = request.form["Name"]

    with open("QS-2018-ASIA-clean.csv", encoding="ISO-8859-1") as f:
        reader = csv.reader(f)
        rankdata = [r for r in reader]

    with open("THE_Ranking_Asia.csv", encoding="ISO-8859-1") as g:
        reader1 = csv.reader(g)
        rankdata1 = [r for r in reader1]

    hit = process.extractOne(str(uniname), rankdata, scorer=fuzz.token_set_ratio)
    hit1 = process.extractOne(str(uniname), rankdata1, scorer=fuzz.token_set_ratio)

return render_template('results.html', result1=str(hit[0]), result=str(hit[0][0]))

这将引发一个错误,在我的heroku应用程序日志中,该错误如下所示:

 -File "/app/.heroku/python/lib/python3.6/site- packages/fuzzywuzzy/string_processing.py",
 line 19, in replace_non_letters_non_numbers_with_whitespace
 -return regex.sub(" ",a_string) 
 -TypeError: expected string or bytes-like object

这可能是因为工艺萃取酮什么是单子?但是当我在PyCharm中尝试此方法时,问题不会出现。在那里,他很好地打印出我要找的东西(在本例中使用uniname=“Tokyo”):

print(hit) # (['14', 'THE UNIVERSITY OF TOKYO '], 100)
print(hit[0]) # ['14', 'THE UNIVERSITY OF TOKYO ']
print(hit[0][0]) # 14

有人知道他为什么在heroku flask应用程序中抛出错误而不是在PyCharm中吗?你知道吗

根据一条评论,我试着在本地和heroku检查模糊版本。在heroku的python控制台中执行此操作会引发以下错误:

enter image description here

非常感谢!你知道吗


Tags: csvtheinapp列表herokustring错误
1条回答
网友
1楼 · 发布于 2024-06-28 14:51:56

问题确实是local和heroku之间fuzzyfuzzy的版本差异(归功于@AlexHall)。 我没有在Heroku的python控制台中进行检查、安装或升级,而是检查了要求.txt并找到了上面提到的版本:

fuzzywuzzy==0.3.0

已将此更改为最新版本

fuzzywuzzy==0.17.0

然后跑了

git add .
git commit -m "req update"
git push heroku master

再来一次。现在工作!你知道吗

相关问题 更多 >