首页 > 解决方案 > Psycopg2 数据库类不返回对象

问题描述

我有一个数据库类,我正在尝试从表中提取所有数据。当我运行函数“db_source”时,没有生成任何对象。类中的其他查询工作,所以它特别是返回对象的问题。这是我的代码:

import psycopg2 as psy

class Database:
    def __init__(self):
         self.con = psy.connect(user='postgres',
                               password='xxxx',
                               database='xxxx',
                               host='localhost')
         self.cur = self.con.cursor()

    def execute_query(self, query, args, multiple=False, return_object=False):
        if not multiple and not return_object:
            self.cur.execute(query, args)

        if multiple:
            self.cur.executemany(query, args)

        if return_object:
            self.cur.execute(query, args)
            query_object = self.cur.fetchall()
            return query_object

    def db_source(self):
        self.execute_query(""" SELECT column1, column2::text, column3 FROM table1 """,
                               None, multiple=False, return_object=True)

db = Database()
data = db.db_source()

我已经为此拉了一个小时的头发,所以任何帮助将不胜感激。

标签: pythonpostgresqlpsycopg2

解决方案


该方法必须返回对象:

def db_source(self):
    return self.execute_query(""" SELECT column1, column2::text, column3 FROM table1 """,
                           None, multiple=False, return_object=True)

推荐阅读