Я написал ниже скрипт:
import sqlite3
import os
from contextlib import contextmanager
from sqlite3 import Error
class DatabaseManager():
def __init__(self, repoName, table_name):
self.dbName = repoName
self.tableName = table_name
self.createTables()
@contextmanager
def db_connection(self):
# Wait for max 30 seconds before timing out
con = sqlite3.connect(self.dbName, timeout=30.0)
yield con
con.commit()
con.close()
@contextmanager
def dbFetch(self, sqlExecute):
with self.db_connection() as con:
cur = con.execute(sqlExecute)
return cur.fetchall()
cur.close()
def createTables(self):
if self.tableName == "tableName":
createSQL = "CREATE TABLE if not exists tableName(source text, domain text, jsonExist text, jsonValue text);"
with self.db_connection() as con:
con.execute(createSQL)
Я хотел бы получить доступ к результату dbFetch (withsql query
), как мне этого добиться. N0 независимо от того, что я делаю, он показывает только <contextlib._GeneratorContextManager object at 0x01054CA0>
dbManager = DatabaseManager("dbSchema", "tableName")
dbManager.createTables()
response = dbManager.dbFetch("SELECT count(*) FROM {0} WHERE SOURCE = '{1}' AND DOMAIN = '{2}'; ".format("tableName", Source, Domain)
как я могу получить выход dbFetch?