因此,我正在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控制台中执行此操作会引发以下错误:
非常感谢!你知道吗
问题确实是local和heroku之间fuzzyfuzzy的版本差异(归功于@AlexHall)。 我没有在Heroku的python控制台中进行检查、安装或升级,而是检查了要求.txt并找到了上面提到的版本:
已将此更改为最新版本
然后跑了
再来一次。现在工作!你知道吗
相关问题 更多 >
编程相关推荐