让 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. dubbo和zikkeper的使用

    1.先来一段异常看看:No provider available for the service 16:05:25.755 [localhost-startStop-1] WARN o.s.w.c.s ...

  2. Web从入门到放弃<6>

     <1> Canvas. 1,灰度图: js: function showAsGray() { var imgNode = document.getElementById('img'); ...

  3. Nginx配置https证书

    目前的大趋势是升级HTTP为HTTPS 本章介绍怎样实装HTTPS证书 # 如果报 ssl 错误是Nginx安装时未安装ssl 请重新编译nginx 可以参考我之前的博客 申请/获取https 这里就 ...

  4. RDay1-Problem 1 A

    题目描述 给定一个长度为n的正整数序列a[i],计算出有多少个i<j的数对,a[i]+a[j]为二的次幂,也就是说存在一个正整数x满足a[i]+a[j]==2^x. 输入 输入文件A.in. 第 ...

  5. Java的家庭记账本程序(G)

    日期:2019.2.24 博客期:035 星期日 啊哈!记账本虽然还是没有做完,不过,今天我的工作量应该是足够的!哦!差点忘记说啦!我是在Android Studio出现了问题之后,跑去研究微信小程序 ...

  6. Django + Uwsgi + Nginx 的生产环境部署

    使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归 ...

  7. Intellij Idea 2016创建web项目

    一.创建简单web项目 1.创建一个web project File -> new Project ->选择project sdk 为1.8(已经配过环境变量)其他不要选 -> Ne ...

  8. sqlserver 脚本生成数据库文档

    SELECT       ( then d.name else '' end)表名,       --a.colorder 字段序号,       a.name 字段名,       --(case ...

  9. mysql字段有中英文,数字按照升序/降序 排序

    ORDER BY    CONVERT(name,SIGNED) ASC,    CONVERT(name USING gbk) DESC

  10. sklearn交叉验证-【老鱼学sklearn】

    交叉验证(Cross validation),有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法.于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证. 一开始 ...