凉风有信,秋月无边。
亏我思娇的情绪好比度日如年。

cx oracle 返回字典

《cx oracle 返回字典》正文开始,本次阅读大概5分钟。

CX Oracle是Python连接Oracle数据库的模块,它提供了方便快捷的方法来连接和操作Oracle数据库。使用CX Oracle查询数据库时,我们常常会需要将查询结果以字典形式返回。下面将详细介绍如何使用CX Oracle实现查询结果以字典方式返回。

使用CX Oracle的cursor对象的fetchall()方法可以一次性获取查询结果中的所有数据,并将结果以元组的形式返回。我们可以使用以下代码获取查询结果。

import cx_Oracle
dsn_tns = cx_Oracle.makedsn('SERVER', 'PORT', service_name='DATABASENAME') 
conn = cx_Oracle.connect(user='USERNAME', password='PASSWORD', dsn=dsn_tns) 
cursor = conn.cursor()
sql = "SELECT * FROM EMPLOYEE"
cursor.execute(sql)
result = cursor.fetchall()

以上代码我们获取了EMPLOYEE表中的所有数据,查询结果以元组的形式存储在result变量中。接下来我们将使用Python的字典类型将查询结果转换成字典。

在转换过程中我们首先需要获取查询结果中的列名和数据类型信息。我们对创建的cursor对象使用description属性可以获取查询结果每一列的名称和数据类型。使用以下代码可以获取列名和数据类型列表:

columns = [i[0] for i in cursor.description]
types = [i[1] for i in cursor.description]

接下来我们使用Python的zip()方法将列名和数据类型列表合并成一个元组的列表。然后我们使用Python的列表推导式将查询结果转换成字典形式。我们首先建立一个空列表,然后使用for循环遍历查询结果元组的每一行数据。在循环的每一次迭代中,我们将该行数据使用zip()方法和列名列表结合,形成一个元组的列表,并使用Python的dict()方法将元组列表转换成字典。最后将转换后的字典添加到结果列表中。

results = []
for row in result:
row_dict = dict(zip(columns, row))
results.append(row_dict)

到此为止,我们成功将查询结果以字典形式返回了。完整的代码如下所示:

import cx_Oracle
dsn_tns = cx_Oracle.makedsn('SERVER', 'PORT', service_name='DATABASENAME') 
conn = cx_Oracle.connect(user='USERNAME', password='PASSWORD', dsn=dsn_tns) 
cursor = conn.cursor()
sql = "SELECT * FROM EMPLOYEE"
cursor.execute(sql)
result = cursor.fetchall()
columns = [i[0] for i in cursor.description]
types = [i[1] for i in cursor.description]
results = []
for row in result:
row_dict = dict(zip(columns, row))
results.append(row_dict)

使用以上代码,我们可以轻松地将CX Oracle查询结果以字典形式返回。这种方法在查询结果比较复杂或包含多表连接时特别有用。

赞(73)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的内容,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。本博客资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。如果本文导致的版权问题以及内容纠错问题请联系站长QQ:1004619 | 点此给我发送邮件
本文标题:cx oracle 返回字典
本文地址:https://www.1004619.com/nn/cxoraclefhzd.html