Как получить набор результатов запроса в виде словаря, используя python, cx_oracle? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть код ниже, и я хочу вернуть свой fetch_data_from_db в качестве словаря, в настоящее время он возвращает кортеж.пожалуйста, дайте мне знать, какой код должен быть добавлен к существующему, чтобы получить то же самое?

import cx_Oracle

class OracleDBConnection(object):

    def connect_oracle_db(self,connectionstring):    
        con=None
        try:
            con = cx_Oracle.connect(connectionstring)
            return con
        except Exception as e:
            print str(e.args)
            print str(e)
            return str(e)
    #print con.version

    def fetch_data_from_db(self,con, query):         
        curs = con.cursor()   
        curs.execute(query)          
        res=curs.fetchall() 
        return res

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете просто подготовить список столбцов и список данных отдельно и построить словарь на основе этих двух различных списков следующим образом:

def fetch_data_from_db(self, con, query):         
    curs = con.cursor()   
    curs.execute(query)  

    # list of table columns
    column_names = list(map(lambda x: x.lower(), [
            d[0] for d in curs.description]))
    # list of data items
    rows = list(curs.fetchall())

    result = [dict(zip(column_names, row)) for row in rows]
    return result 
...