Поиск конкретных строк в .db, которые содержат ключевое слово - PullRequest
0 голосов
/ 25 мая 2018

У меня есть база данных SQLite, в которой я хотел бы найти определенное ключевое слово при использовании Python и отображать строки базы данных, содержащие их только в определенной строке:

import sqlite3 as lite
con = lite.connect("corpus.db")
c = con.cursor()
keyword = str(input("Which keyword do you wish to find in the corpus? "))
c.execute("SELECT Content FROM Corpus")
#I'm guessing there should be more parameters here

Я довольно новичок в кодированиив общем, очень жаль, если все это кажется очень нубистским.Я не могу найти какие-либо аналогичные решения.Я попытался сделать это (хотя это не совсем то, что я ищу, но я думал, что смогу по крайней мере обойти результаты позже):

import sqlite3 as lite
con = lite.connect("corpus.db")
c = con.cursor()
keyword = str(input("Which keyword do you wish to find in the corpus? "))
#For example, "camera"
c.execute("SELECT Content FROM Corpus")
#In my case, content contains a list with this data [('A Japanese woman has been reunited with a camera she dropped in the ocean two-and-a-half years ago, after schoolchildren in Taiwan found it washed up on a beach and covered in barnacles.',), ('The writer is a Washington DC-based foreign affairs analyst. His views are his own.',), ...]
content = c.fetchall()
for text in content:
    if keyword in text:
        print(text)

Так, теоретически, это должно напечататьпредложение о японской женщине, но оно ничего не печатает, так что я понятия не имею, что мне следует делать, чтобы даже найти элементы внутри списка.Это работает в этом примере , хотя.

1 Ответ

0 голосов
/ 25 мая 2018

В моем случае контент содержит список с этими данными
[('Японка воссоединилась с камерой, которую она бросила в океан два с половиной года назад после того, как школьники вТайвань нашел его вымытым на пляже и покрытым ракушками. ',), («Автор - аналитик по иностранным делам из Вашингтона, округ Колумбия. Его взгляды - его собственные.»,), ...]

Возвращенные значения в content представляются списком из кортежей .
Вам придется повторять итерации внутри каждого кортежа, чтобы получить предложение.

Как это:

for item in content:
    # item = ('A Japanese woman has been reunited with a camera she dropped in the ocean two-and-a-half years ago, after schoolchildren in Taiwan found it washed up on a beach and covered in barnacles.',)
    for sentence in item:
        if keyword in sentence:
            print(sentence) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...