让 Python 的数据库查询返回字典记录:

https://yanbin.blog/python-database-query-return-dictionary-result/#more-9179

前言:利用zip函数将两个列表(list)组成字典(dict)

# 使用zip函数, 把key和value的list组合在一起, 再转成字典(dict).
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary) """
输出:
{'a': 1, 'c': 3, 'b': 2}
"""

1、通用方式(适用于所有数据库)

# 首先,前面提到的,查询后的字段名称可由cursor.description获得,下面的代码会打印出每个字段的名称

# for col in cursor.description:
# print(col[0])
# # 如果把字段时的列表与每一行结果的Tuple以zip相结合就能得到一个字典行
import pymssql conn=pymssql.connect( host = '172.17.0.128\PTSY', user = 'sa', password = 'cszx@123', database = 'MDM_TEST')
cursor=conn.cursor()
# sql="select table_name from NSTM_CODESYSTEM where code='HospInfo' and version='5.0.2'"
sql="select * from NSTM_V_aflnmxdn"
cursor.execute(sql)
columns = [column[0] for column in cursor.description]
for row in cursor.fetchall():
print(dict(zip(columns, row)))
cursor.close()
conn.close() '''输出结果如下:
{'NSTM_VC_ID': 7, 'NSTM_VC_BUSINESSSTEP': 6, 'NSTM_VC_CODESYSID': 2246, 'NSTM_VC_CREATEDTIME': '2019-04-09 14:51:19.037', 'NSTM_VC_MODIFIEDTIME': '2019-04-11 17:58:43.287', 'NSTM_VC_PUBLISHEDTIME': None, 'NSTM_VC_VERSION': '1', 'NSTM_VC_KEYSTR': '上海医疗(01)', 'NSTM_VC_PARTICIPLE': '上海||医疗', 'orgCode': '01', 'orgName': '上海医疗', 'pareOrgCode': 'org_1', 'pareOrgType': '医院', 'addrProvince': '上海市', 'addrCity': '上海市', 'addrCounty': '静安区', 'addrTown': '寿阳路', 'addrVillage': '99弄', 'addrHouseNo': '卫宁健康', 'hospLevel': '01', 'hospType': Decimal('1'), 'orgInstCode': '11', 'socialCreditCode': '6660101', 'designatedBeds': 9999, 'validStartDTime': '20190409', 'validEndDTime': '20990409', 'activeSign': '1', 'verNo': '2.1'}
'''

2、SQLServer返回字典结果集

# 用SQLServer的驱动pymssql让结果集返回为字典的方式就更为直截了当,只需要设置cursor的as_dict属性为True就行了。详见下方代码

import pymssql

conn = pymssql.connect(host = '172.17.0.128\PTSY', user = 'sa', password = 'cszx@123', database = 'MDM_TEST')
cursor = conn.cursor(as_dict=True) cursor.execute('select * from test')
print(cursor.fetchall()) # 打印的结果为 [{'name': 'Bob', 'count': 1}, {'name': 'Joe', 'count': 8}]

让 Python 的1、数据库查询返回字典记录--- 2、利用zip函数将两个列表(list)组成字典(dict)的更多相关文章

  1. python操作oracle数据库-查询

    python操作oracle数据库-查询 参照文档 http://www.oracle.com/technetwork/cn/articles/dsl/mastering-oracle-python- ...

  2. laravel数据库查询返回的数据形式

    版本:laravel5.4+ 问题描述:laravel数据库查询返回的数据不是单纯的数组形式,而是数组与类似stdClass Object这种对象的结合体,即使在查询构造器中调用了toArray(), ...

  3. [译]在Python中如何使用额enumerate 和 zip 来迭代两个列表和它们的index?

    enumerate - 迭代一个列表的index和item <Python Cookbook>(Recipe 4.4)描述了如何使用enumerate迭代item和index. 例子如下: ...

  4. SSM获取表单数据插入数据库并返回插入记录的ID值

    以下指示插入操作以及获取记录值的ID的部分操作代码!!! 首先是简单的表单实现 <%@ page language="java" contentType="text ...

  5. python两个列表合并为字典,一个作为key,一个作为value

    两个列表合并为一个字典函数list_dic(list1,list2)可以直接复制拿走 传入的参数为两个列表,list1准备作为key,list2准备作为value,key和value位置一一对应. d ...

  6. Python - 两个列表(list)组成字典(dict)

    使用zip函数, 把key和value的list组合在一起, 再转成字典(dict). 代码: # -*- coding: utf-8 -*- keys = ['a', 'b', 'c'] value ...

  7. 将两个列表合并为字典_其中一个列表为Key_一个列表为Value

    #定义两个列表 list1 = range(0,10) list2 = range(10,20) #合并为字典,调用dict(zip()) dict_name = dict(zip(list1,lis ...

  8. 数据库查询返回Resource id #9后的处理方式

    如果在调用PHP查询数据库,在echo后返回的是Resource id #9,可能你的输出方式是: $sql="SELECT * FROM dbname WHERE id='1'" ...

  9. Python版的数据库查询构造器、ORM及动态迁移数据表。

    Orator Orator提供一个简单和方便的数据库数据处理库. 它的灵感来源于PHP的Laravel框架,借助其思想实现了python版的查询构造器和ORM. 这是完整的文档:http://orat ...

随机推荐

  1. Lua中的闭包

    [什么是闭包?] 闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体.我们再来看一段代码: function newCounter() return function ...

  2. 命令操作MySQL数据库

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...

  3. 【原创】大叔问题定位分享(27)spark中rdd.cache

    spark 2.1.1 spark应用中有一些task非常慢,持续10个小时,有一个task日志如下: 2019-01-24 21:38:56,024 [dispatcher-event-loop-2 ...

  4. Jquery点击div之外的地方隐藏当前div

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script sr ...

  5. verilog 仿真时读取txt文件

    :]data; initial begin # clk =; clk = ~clk; end initial begin # rst=; # rst=; end :]data_sin[:]; //// ...

  6. PHP输出缓存ob系列函数

    ob,输出缓冲区,是output buffering的简称,而不是output cache.ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额外的负担. ob的基本原则:如果 ...

  7. django中静态文件的配置路径

    一  先找到配置文件 二  将配置文件添加上(注意名字一定要大写)

  8. Python内置函数之classmetho staticmethod

    当对类的静态属性进行修改时(不需要借助于对象就行类静态属性的修改) class Goods: discount = 0.5 def __init__(self,name,price): self.na ...

  9. 末学者daylight__Linux磁盘管理及LVM

    一.硬盘接口 从整体的角度上,硬盘接口分为IDE.SATA.SCSI和SAS四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而SAS只在高端服务器上 ...

  10. form组件

    def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['hobby'].choices ...