Python 检查文件中的单词是否以有效的方式出现在SQL查询中

Python 检查文件中的单词是否以有效的方式出现在SQL查询中,python,sql,string,python-2.7,sqlite,Python,Sql,String,Python 2.7,Sqlite,我有一个.txt文件,其中包含由,分隔的单词和小短语,我希望看到这些单词中的哪一个出现在 for cur.execute中的行(“从业务id=(?),(s,))的审阅中选择文本):(s从外部for循环中获取值)。 我的目标是,每当.txt文件中的一个单词出现在SQL查询返回的行中时,向计数器添加+1(这些行是大小不同的字符串,通常大到足以使对它们进行切片并分别检查每个单词非常耗时)。 还有别的办法吗? 我所尝试的: for words in line: with open("good_wo

我有一个.txt文件,其中包含由
分隔的单词和小短语,我希望看到这些单词中的哪一个出现在
for cur.execute中的行(“从业务id=(?),(s,))的审阅中选择文本):
(s从外部for循环中获取值)。 我的目标是,每当.txt文件中的一个单词出现在SQL查询返回的行中时,向计数器添加+1(这些行是大小不同的字符串,通常大到足以使对它们进行切片并分别检查每个单词非常耗时)。 还有别的办法吗? 我所尝试的:

for words in line:
   with open("good_words.txt", "r") as check:
     for x in check:
        if x in words:
        goods += 1

这会导致我的电脑烧坏并基本崩溃。

将所有单词和短语读入regexp列表

good_words = []
with open("good_words.txt", "r") as f:
    for line in f:
        good_words.append(re.compile(r'\b' + re.escape(line) + r'\b'))
for line in cur.execute("select text from reviews where business_id = (?) ", (s,)):
    for word in good_words:
        if word.search(line[0]):
            goods += 1

\b
匹配单词边界,因此您不必将行拆分为单词。

您可以将单词转换为正则表达式,然后使用regexp搜索它们。是否将RegEx中的每个单词和短语转换为多个if-then-else语句?这同样耗时,但我会试试。
对于第行中的单词:
迭代
行中的字符,而不是单词。对于line.split()中的单词,它应该是
No
if/then/else
语句,只是一个迭代所有regexp的
for
循环。@Barmar我如何拆分元组?