Я занят небольшим проектом, который отслеживает MAC-адреса в определенных сетях. Все работает отлично, за исключением случаев, когда я просматриваю DB (SQLite3) для MAC-адреса, пойманного pcapy в python2.7.Python SQLite3 Mac Адрес с поиском двоеточий
Вот код Def в коде.
def db_check(_loc, _mac):
con = lite.connect('database.db')
con.text_factory = str
cur = con.cursor()
cur.execute("SELECT * FROM "+_loc+" WHERE mac_addr=?", (_mac,))
# _loc = Tablename
# _mac = variable with mac address
# mac_addr = column name in sqlite3
# MAC Address format xx:xx:xx:xx:xx
_data = cur.fetchall()
if len(_data)==0:
print('There is no mac %s'%_mac)
else:
print('Component %s found with rowids %s'%(_mac,','.join(map(str,zip(*_data)[0]))))
Я хочу, чтобы захватить номер строки в строке, где был замечен адрес Mac. Но когда я печатаю fetchall(), я получаю только [] в качестве вывода.
Когда я запускаю sql-запрос в sqlite, я получаю всю строку, как ожидалось.
Может ли кто-нибудь дать некоторые указания, пожалуйста?
Итак, что же означает 'data'? Вы называли 'cur.fetchall()' только один или два раза? –
cur.fetchall() запускается только один раз. данные не содержат ничего, это пустой список [] –
Как мне отобразить номер строки для дальнейшей обработки? –