Я застрял с этим непросто интерпретировать ошибку с asyncpg. Ошибка говорит мне, что индекс 0 имеет неправильный тип, ожидая datetime при получении int:
asyncpg.exceptions.DataError: invalid input for query argument $1: [(None, 1000, 2001, datetime.datetime(2.... (invalid array element at index 0: expected a datetime.date or datetime.datetime instance, got 'int')
Это странно, потому что схема выглядит так:
id: bigint,
eid: bigint,
time: datetime,
type: varchar(20)
Мои данные выглядят так:
data = [(None, 1000, 2001, datetime.datetime(2020, 3, 20, 23, 20, 35, 71), 'Testing1'),
(None, 1001, 2002, datetime.datetime(2020, 3, 20, 23, 20, 35, 71), 'Testing2'),
(None, 1002, 2003, datetime.datetime(2020, 3, 20, 23, 20, 35, 71), 'Testing3')]
Ничего не добавлено к первому элементу, потому что я видел, что в другом посте та же ошибка Без него.
И функция asyn c:
async def insert(data):
conn = await asyncpg.connect(user='username', password='password',
database='database', host='127.0.0.1')
res = await conn.fetch('''
INSERT INTO tablename (id, eid, time, type)
(SELECT
e.id, e.eid, e.time, e.type
FROM
unnest($1::tablename[]) as e
)
''', data)
await conn.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(insert(data))
Очень неясная ошибка, надеюсь, что любое может помочь решить эту проблему.