条件付きの辞書があり、その条件のいずれかが基準と一致する場合、1つのキーを返したいと思います。ここに私のコードは、これまでのようになります。用語と戻りキーを使用して辞書条件を検索する
import re
import pyodbc
keyword_dictionary = {
'Animals' : {'animal', 'dog', 'cat'},
'Art' : {'art', 'sculpture', 'fearns','graphic','display','lights'},
'Fruit' : {'yellow','fruit'},
}
def matcher(keywords, searcher):
for word in searcher:
for key, words in keywords.items():
if word in words:
result = []
result.append(key)
result1 = str(result).replace("['", "")
final_result = str(result1).replace("']", "")
print final_result
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=INSERT SERVER NAME;DATABASE=INSERT DATABASE NAME;UID=INSERT USERNAME;PWD=INSERT PASSWORD')
cursor = cnxn.cursor()
cursor.execute("SELECT TOP 50 [unique_id] \
,[terms] \
,[url] \
FROM [INSERT DATABASE NAME].[dbo].[INSERT TABLE NAME]")
rows = cursor.fetchall()
for row in rows:
terms = row[1]
matcher(keyword_dictionary, terms)
用語は
キーAnimals
または
印刷する必要があります"that's a red fruit"
を印刷する必要があります
"wendy bought a dog"
のようなものかもしれキーFruit
誰かが私のコードを編集する方法を知っていますか?
おそらくあなたの問題には関係ありませんが、 '行内の行に対して:terms = row [1]'はあなたが意図したとおりの動作をしますか?それは 'terms + = row'か' terms.append(row [1]) 'ではないでしょうか? –
それは列 "用語"からすべてを引き出します – semiflex