Здесь происходит несколько вещей.
Прежде всего, вы не хотите этого делать:
for row in x:
row = cur.fetchone()
Если вы хотите перебрать результаты, возвращаемыезапрос, вы должны рассмотреть что-то вроде этого:
for row in cur.fetchall():
id = row[0]
html = row[1]
# ...
Чтобы понять остальные ошибки, которые вы видите, давайте посмотрим на них шаг за шагом.
TypeError: "'NoneType'object not subscripts ":
Вероятно, это сгенерировано здесь:
row = cur.fetchone()
id = row[0]
Cursor.fetchone
возвращает None
, если выполненный запрос не совпадает ни с одной строкой или если нетстрок осталось в наборе результатов.Затем следующая строка пытается выполнить None[0]
, что вызовет указанную ошибку.
sqlite3.InterfaceError: Параметр привязки ошибки 0 - возможно, неподдерживаемый тип:
re.findall
возвращаетсписок неперекрывающихся совпадений, а не отдельных совпадений.Нет поддержки для привязки списка Python к типу текстового столбца sqlite3.Чтобы это исправить, вам нужно получить первый элемент из соответствующего списка (если он существует), а затем передать его в качестве параметра электронной почты в ОБНОВЛЕНИИ.