почему появляется ошибка sqlite3.InterfaceError?

новичок в питоне

Новичок
Пользователь
Май 5, 2020
18
1
3
при выполнении кода:

Python:
import sqlite3
from datetime import datetime

sql = sqlite3.connect('DataBase_user.db')
db = sql.cursor()


def ban(user_id, reason):
    db.execute("SELECT user_id FROM User_ban")
    if db.fetchone() is None:
        db.execute("INSERT INTO User_ban VALUES (?, ?, ?)", (user_id, 'не указанно', datetime.utcnow))
        db.execute()
        return 'Пользователь забанен!'
    else:
        pass


print(ban(1, 'tests'))


Появляется ошибка:

Код:
Traceback (most recent call last):
  File "C:/Users/Danila/PycharmProjects/vk_bot/Users_ban_DB.py", line 22, in <module>
    print(ban(1, 'tests'))
  File "C:/Users/Danila/PycharmProjects/vk_bot/Users_ban_DB.py", line 11, in ban
    db.execute("INSERT INTO User_ban VALUES (?, ?, ?)", (user_id, 'не указанно', datetime.utcnow))
sqlite3.InterfaceError: Error binding parameter 2 - probably unsupported type.


При этом типы указанны верно:

2020-06-03_20-20-03.png
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Судя по ошибке - не верный тип передаваемых данных. Попробуйте передавать не метод, а результат его выполнения datetime.utcnow().
 

Форум IT Специалистов