Неподдерживаемый тип (ы) операндов Python и SQLite для @: 'str' и 'str' - с @ нет подобных вопросов - PullRequest
0 голосов
/ 16 марта 2019

Это фрагмент кода Python3, который включает запрос SQLite.

Запрос выполняется без проблем в браузере SQLite, но при запуске из Python выдает следующие ошибки:

conn = sqlite3.connect('emaildb.sqlite')
cur = conn.cursor()
cur.execute('DROP TABLE IF EXISTS Counts')
cur.execute('CREATE TABLE Counts (org TEXT, count INTEGER)')
cur.execute('INSERT INTO Counts (org,count) SELECT SUBSTR(email, (SELECT INSTR(email,'@'))) AS org, SUM(count) as count FROM Em GROUP BY org ORDER BY count DESC')

 rows = cur.fetchall()

for row in rows:
    print(row)

Ошибка:

TypeError Traceback (последний вызов был последним) в () 5 cur.execute ('CREATE TABLE Count (org TEXT, count INTEGER)') ----> 6 cur.execute ('INSERT INTO Counts (org, count) SELECT SUBSTR(электронная почта, (ВЫБРАТЬ INSTR (электронная почта, '@'))) AS org, SUM (количество) как количество ОТ Em GROUP BY org ORDER BY count DESC ') 7 8 строк = cur.fetchall ()

Ошибка типа: неподдерживаемый тип (ы) операнда для @: 'str' и 'str'

Я нашел причину, но все же есть проблема ... она не должна заменять INSERT '"в начале и в конце вставки ..." INSERT ... DESC "

cur.execute (" INSERT INTO Считает (org, count) SELECT SUBSTR (электронная почта, (SELECT INSTR (электронная почта,'@'))) AS org, SUM (count) как count FROM Em GROUP BY org ORDER BY count DESC ').

но он не делает INSERT, есть идеи почему?

...