数据库查询返回字典类型数据

一、oracle数据库

在oracle数据库中,可以通过数据处理,将字典名称和数据拼接一下,返回字典数据

import os

import cx_Oracle

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'


class OracleConnect:

    def __init__(self, connect_config):  # db_name: 对应数据库配置项名
        self.db = cx_Oracle.connect(connect_config)
        self.cr = self.db.cursor()

    def sql_select(self, sql):
        """
        功能:查询数据库记录,返回以元组为元素的列表
        """
        self.cr.execute(sql)
        rs = self.cr.fetchall()
        return rs

    def sql_select_dict(self, sql):
        """
        功能:查询数据库,返回以字典为元素的列表
        """
        rs = self.sql_select(sql)
        cols = [d[0] for d in self.cr.description]  # 数据库表的所有字段名称
        rs_format = []
        for row in rs:
            rs_dict = dict(zip(cols, row))
            rs_format.append(rs_dict)
        return rs_format

    def __del__(self):
        self.cr.close()
        self.db.close()

二、mysql数据库

在MySQL中,创建游标对象时,选择参数pymysql.cursors.DictCursor,以此将查询的每条数据,返回为字典类型

import pymysql


def sql_select_dict(mysql_config, sql):
    """
    功能:查询数据库,返回以字典为元素的列表
    """
    conn = pymysql.connect(**mysql_config)  # 数据库连接
    cur = conn.cursor(pymysql.cursors.DictCursor)  # 游标对象
    cur.execute(sql)
    return cur.fetchall()
posted @ 2023-02-28 09:29  xyztank  阅读(120)  评论(0)    收藏  举报