让 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. 🍓vue & react 一些重要但没必要死记硬背的东西

  2. I. Max answer(RMQ预处理前缀和)

    题目链接: https://nanti.jisuanke.com/t/38228 题目大意:给你n个数,让你找出一个区间中f的最大值,具体的f计算方法,这段区间的和乘以这段区间的最小值. 具体思路:我 ...

  3. (二)Java工程化--Maven实践

    Maven项目版本号 默认版本号: 1.0-SNAPSHOT 最佳实践是约定该版本为不稳定版本,如果发布一定要删除; 建议的版本规则: 主版本号.次版本号.增量版本号- 如:1.0.0-RELEASE ...

  4. TP5报错

    Array to string conversion 数组不能用echo来输出,可使用var_dump().dump()或print_r()

  5. unicode & utf-8

    简单来说: Unicode 是「字符集」 UTF-8 是「编码规则」 其中: 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) 编码规则:将「码位」转换为 ...

  6. 【原创】大数据基础之HDFS(2)HDFS副本数量检查及复制逻辑

    HDFS会周期性的检查是否有文件缺少副本,并触发副本复制逻辑使之达到配置的副本数, <property> <name>dfs.replication</name> ...

  7. 安装和启动tftp-server服务器及可能出现Redirecting to /bin/systemctl restart xinetd.service问题的解决方式

    安装和启动tftp-server服务器及可能出现Redirecting to /bin/systemctl restart xinetd.service问题的解决方式 1)首先,检查服务器已安装的tf ...

  8. linux软件管理

    People who cannot find time for recreation are obliged sooner or later to find time for illness.腾不出时 ...

  9. OpenCV-Python:形态学操作

    常用的形态学操作:腐蚀.膨胀.开运算和闭运算 一.什么叫形态学操作 形态学操作就是改变物体的形状,比如腐蚀就是"变瘦",膨胀就是"变胖" 形态学操作一般作用于二 ...

  10. (一)Knockout 计算属性

    1 Computed 首先,创建一个view model如下: <body> <p>The fullname is: <span data-bind="text ...