我使用python上的sqlite3库与.db文件交互。 根据这项请求:
SELECT * FROM LesFilms F JOIN LesRealisateurs R ON (F.film_id=R.film_id) WHERE realisateur="Tim Burtyn" or soundex("Tim Burtyn")=soundex(R.realisateur) or realisateur like"T%m Burtyn" or realisateur like"Tim B%rtyn" or realisateur like"Tim Burt%n";
我得到了这个错误:
sqlite3.OperationalError: no such function: soundex
有人已经面临这个问题了吗?我分享整个请求,以防万一,我完全是个初学者
谢谢,
埃利亚斯
将数据加载到数据框中,然后使用fuzzywuzzy查找类似的字符串
我认为你运气不好,正如你可能从评论中得到的那样。Python标准库模块
sqlite3
通常提供sqlite的最新版本但是Python
sqlite3
库不提供默认关闭的可选sqlite特性。这包括soundex
函数。我不建议您在打开该选项的情况下尝试构建自己版本的Python标准库模块。这类事情最好留给Python实现者去做或者,您可以尝试^{} 模块:} 模块:
pip install python-Levenshtein
或^{pip install Metaphone
要使用这两种方法之一,您需要从数据库中获取比实际需要更多的记录,例如
where realisateur like "T%"
,然后丢弃Python代码中的不匹配项,而不是where
子句中的不匹配项这并不像听起来那么糟糕,而且可能有好处。Soundex是在20世纪初开发的,因此它旨在让人们能够用手快速计算。正如在随后的100年中多次尝试改进它所表明的那样,它存在着重大缺陷。它流行的主要原因是因为它由许多SQL实现提供,而不是因为它特别好
相关问题 更多 >
编程相关推荐