Как я могу зациклить функцию поиска? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть таблица sqlite db со столбцами идентификаторов и кодовых имен.

1 aaaa1223
2 bbbb2321321
3 cccc23112

, и у меня есть txt-файл:

aaaa Result1
bbbb Result2
cccc Result3
....

Как можно зациклить функцию поиска?

Теперь мой результат напечатан только:

aaaa = Result1

Но мне нужно распечатать:

aaaa = Result1
bbbb = Result2
cccc = Result3




import sqlite3
import codecs

con = sqlite3.connect('database.dbl')

cur = con.cursor()
cur.execute("SELECT id,codename FROM data")

rows = cur.fetchall()

filetxt = codecs.open("codenamefile.txt", 'r', 'utf-8')

def ScanData(f):
    for line in filetxt:
        if f==line.split("      ")[0]:
            print (codenamec+" = "+line.split("       ")[1])
    return

for row in rows:
    codename=row[1]
    codenamec=codename[:4]
    ScanData(codenamec)

1 Ответ

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

Вы можете прочитать содержимое файла в словарь, а затем использовать re с результатами из базы данных:

import sqlite3
file_data = dict(i.strip('\n').split() for i in open('filename.txt'))
data = sqlite3.connect('filename.db').cursor().execute('SELECT * FROM table')
final_results = dict((lambda x:[x, file_data[x]])(re.findall('[a-z]+', i)[0]) for _, i in data)

Вывод:

{'aaaa': 'Result1', 'bbbb': 'Result2', 'cccc': 'Result3'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...