ошибка подключения к базе данных с использованием библиотек aiosqlite python

#python #sqlite #asynchronous

#python #sqlite #асинхронный

Вопрос:

Для библиотеки есть документация. Я использую код оттуда:

https://aiosqlite.omnilib.dev/en/latest/?badge=latest

 import aiosqlite

db = await aiosqlite.connect("db.db")
cursor = await db.execute('SELECT * FROM Users')
row = await cursor.fetchone()
rows = await cursor.fetchall()
await cursor.close()
await db.close()
  

Выдает сообщение об ошибке

   File "database.py", line 3
    db = await aiosqlite.connect("db.db")
         ^
SyntaxError: 'await' outside function
  

Как этого избежать?

Ответ №1:

Вам нужно поместить свои await инструкции в сопрограмму:

 import aiosqlite

async def aio_db_stuff():
   db = await aiosqlite.connect("db.db")
   cursor = await db.execute('SELECT * FROM Users')
   row = await cursor.fetchone()
   rows = await cursor.fetchall()
   await cursor.close()
   await db.close()
  

Чтобы запустить сопрограмму, импортируйте asyncio модуль из стандартной библиотеки и перейдите aio_db_stuff к нему:

 import asyncio
asyncio.run(aio_db_stuff())