как получить доступ к выводу менеджера контекста в python - PullRequest
1 голос
/ 13 апреля 2020

Я написал ниже скрипт:

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?

...