首页 > 数据库 >sqlite3 设置返回值为字典类型

sqlite3 设置返回值为字典类型

时间:2023-10-24 22:46:07浏览次数:37  
标签:name 医院 phonenumber 中医院 address sqlite3 返回值 id 字典

# 0. pip install pymysql
# 1. 导入 pymysql  import pymsql
# 2. 创建一个数据库连接对象
# 3. 创建游标 cursor = conn.cursor()
# 4. SQL执行 cursor.execute(sql)
# 5. DML提交事务 conn.commit
# 6. 关闭游标 cursor.close()
# 7. 关闭连接 cursor.close()
import sqlite3

# from Silence.utils.log_util import logger

"""
sqlite是一种嵌入式数据库,它的数据库就是一个文件。
由于SQLite本身是用C写的,而且体积很小,所以经常被集成到各种应用程序中,甚至在IOS和Android的APP中都可以集成。
Python中内置了SQLite3,连接到数据库后,需要打开游标Cursor,通过Cursor执行SQL语句,然后获得执行结果,
Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供符合Python标准的数据库驱动即可.
"""


class DataBase:

    def dict_factory(cursor, row):
        # 将游标获取的数据处理成字典返回
        d = {}
        for idx, col in enumerate(cursor.description):
            d[col[0]] = row[idx]
        return d

    def excute(self, sql):
        """
        获取mysql的连接
        :return: 返回一个数据库连接对象
        @return:
        """
        # 创建一个连接对象
        conn = sqlite3.connect("E:\\bysms\\resource\db.sqlite3")
        # 使得查询结果以字典形式返回.    就是在连接数据库后,将 db.row_factory 方法重写为 dict_factory 方法即可
        conn.row_factory = DataBase.dict_factory


        # 创建一个游标cursor
        cursor = conn.cursor()
        # 执行一条sql 语句
        cursor.execute(sql)
        # try:
        #     logger.info(f'查询数据:{sql}')
        #     cursor.execute(sql)
        # except BaseException as e:
        #     logger.error(f'查询失败{e.args}')
        # else:
        #     logger.info('查询成功')

        # 获取结果集
        data = cursor.fetchall()


        # 关闭 游标
        cursor.close()
        # 关闭 连接
        conn.close()
        return data



if __name__ == '__main__':
    sql = 'select * from common_customer'


    result = DataBase().excute(sql)

    print(result)

运行结果:

[{'id': 29, 'name': '南京中医院1', 'phonenumber': '2551867851', 'address': '江苏省-南京市-秦淮区-汉中路-501'}, {'id': 30, 'name': '南京中医院2', 'phonenumber': '2551867852', 'address': '江苏省-南京市-秦淮区-汉中路-502'}, {'id': 31, 'name': '南京中医院3', 'phonenumber': '2551867853', 'address': '江苏省-南京市-秦淮区-汉中路-503'}, {'id': 32, 'name': '太原中医院1', 'phonenumber': '0351867851', 'address': '山西省-太原市-杏花岭区-解放路-301'}, {'id': 33, 'name': '太原中医院2', 'phonenumber': '0351867852', 'address': '山西省-太原市-万柏林区-建设路-302'}, {'id': 34, 'name': '太原中医院3', 'phonenumber': '0351867853', 'address': '山西省-太原市-尖草坪区-前进路-303'}, {'id': 35, 'name': '西安中医院1', 'phonenumber': '029867851', 'address': '陕西省-西安市-雁塔区-解放路-101'}, {'id': 36, 'name': '西安中医院2', 'phonenumber': '029867852', 'address': '陕西省-西安市-长安区-建设路-102'}, {'id': 37, 'name': '西安中医院3', 'phonenumber': '029867853', 'address': '陕西省-西安市-莲湖区-前进路-103'}, {'id': 38, 'name': '郑州人民医院1', 'phonenumber': '0371867851', 'address': '河南省-郑州市-中原区-解放路-201'}, {'id': 39, 'name': '郑州人民医院2', 'phonenumber': '0371867852', 'address': '河南省-郑州市-金水区-建设路-202'}, {'id': 40, 'name': '郑州人民医院3', 'phonenumber': '0371867853', 'address': '河南省-郑州市-上街区-前进路-203'}, {'id': 41, 'name': '南京人民医院1', 'phonenumber': '2551867811', 'address': '江苏省-南京市-秦淮区-汉中路-5011'}, {'id': 42, 'name': '南京人民医院2', 'phonenumber': '2551867812', 'address': '江苏省-南京市-秦淮区-汉中路-5012'}, {'id': 43, 'name': '南京人民医院3', 'phonenumber': '2551867813', 'address': '江苏省-南京市-秦淮区-汉中路-5013'}, {'id': 65, 'name': '陕西中医院-修改1', 'phonenumber': '13345678888', 'address': '陕西中医院-修改1'}, {'id': 66, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 67, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 68, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 69, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 70, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 71, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 72, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 73, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 74, 'name': '陕西省中医医院1', 'phonenumber': '13345679934', 'address': '西安市钟楼1'}, {'id': 75, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 76, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 77, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 78, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 79, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 80, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 81, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 82, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 83, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 84, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 85, 'name': '陕西中医院-修改2', 'phonenumber': '2222222222222', 'address': '陕西中医院-修改2'}, {'id': 86, 'name': '好好医院', 'phonenumber': '001', 'address': '武汉市桥西医院北路'}, {'id': 87, 'name': '好好医院', 'phonenumber': '002', 'address': '武汉市桥西医院北路'}, {'id': 88, 'name': '好好医院', 'phonenumber': '003', 'address': '武汉市桥西医院北路'}, {'id': 89, 'name': '好好医院', 'phonenumber': '004', 'address': '武汉市桥西医院北路'}, {'id': 90, 'name': '好好医院', 'phonenumber': '005', 'address': '武汉市桥西医院北路'}, {'id': 91, 'name': '好好医院', 'phonenumber': '006', 'address': '武汉市桥西医院北路'}, {'id': 92, 'name': '好好医院', 'phonenumber': '007', 'address': '武汉市桥西医院北路'}, {'id': 93, 'name': '好好医院', 'phonenumber': '008', 'address': '武汉市桥西医院北路'}, {'id': 94, 'name': '好好医院', 'phonenumber': '009', 'address': '武汉市桥西医院北路'}, {'id': 95, 'name': '好好医院', 'phonenumber': '010', 'address': '武汉市桥西医院北路'}, {'id': 96, 'name': '001医院', 'phonenumber': '1353369001', 'address': '武汉市桥西医院北路'}, {'id': 97, 'name': '002医院', 'phonenumber': '1353369002', 'address': '武汉市桥西医院北路'}, {'id': 98, 'name': '003医院', 'phonenumber': '1353369003', 'address': '武汉市桥西医院北路'}, {'id': 99, 'name': '004医院', 'phonenumber': '1353369004', 'address': '武汉市桥西医院北路'}, {'id': 100, 'name': '005医院', 'phonenumber': '1353369005', 'address': '武汉市桥西医院北路'}, {'id': 101, 'name': '006医院', 'phonenumber': '1353369006', 'address': '武汉市桥西医院北路'}, {'id': 102, 'name': '007医院', 'phonenumber': '1353369007', 'address': '武汉市桥西医院北路'}, {'id': 103, 'name': '008医院', 'phonenumber': '1353369008', 'address': '武汉市桥西医院北路'}, {'id': 104, 'name': '009医院', 'phonenumber': '1353369009', 'address': '武汉市桥西医院北路'}, {'id': 105, 'name': '010医院', 'phonenumber': '1353369010', 'address': '武汉市桥西医院北路'}]

 

标签:name,医院,phonenumber,中医院,address,sqlite3,返回值,id,字典
From: https://www.cnblogs.com/Avicii2018/p/17785914.html

相关文章

  • SQLServer2008/2005 生成数据字典语句
    SELECT表名=casewhena.colorder=1thend.nameelse''end,表说明=casewhena.colorder=1thenisnull(f.value,'')else''end,字段序号=a.colorder,字段名=a.name,标识=casewhenCO......
  • Day19_叠加多个装饰器_生成器_三元表达式_列表、字典、集合生成式_生成器表达式
    1.叠加多个装饰器运行顺序: 2.生成器的运行: 3..send()方法可以为yield传输返回值: 4..send()一个None相当于把None添加到yield后: 5..close关闭之后无法传值: 6.三元表达式: 7.列表生成式: 8.字典生成式: 9.集合生成式: 10.生成器表达式: ......
  • 小白学 Python:将 XML 转换为字典的 Python 程序
    在本文中,我们将讨论如何使用Python将XML转换为字典。使用的模块xmltodict:它是一个Python模块,使使用XML感觉就像使用[JSON]一样。在终端中运行以下命令来安装模块。句法:pip安装xmltodictpprint: pprint模块提供了以格式良好且更具可读性的方式“漂亮打印”任意Python......
  • 日志配置字典
    日志配置字典"""logging配置"""importos#1、定义三种日志输出格式,日志中可能用到的格式化串如下#%(name)sLogger的名字#%(levelno)s数字形式的日志级别#%(levelname)s文本形式的日志级别#%(pathname)s调用日志输出函数的模块的完整路径名,可能没有#%(filena......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉
    在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定;以及通过自定义控件的属性处理,实现系统字典内容的快捷绑定的操作。1、下拉列表的数据绑定在我们创建下拉列表的......
  • C++函数如何具有多个返回值?
      本文介绍在C++语言中,使用一个函数,并返回两个及以上、同类型或不同类型的返回值的具体方法。  对于C++语言而言,其不能像Python等语言一样在一个函数中返回多个返回值;但是我们也会经常遇到需要返回两个甚至更多个值的需求。针对这种情况,我们可以通过pair、tuple(元组)等数据结......
  • Nginx Lua修改返回值
    调试lua脚本ngx.log(ngx.ERR,"xxx")日志会打印到/usr/local/nginx/logs/error.log修改返回值时避免内容被截断增加header_filter_by_lua'ngx.header.content_length=nil';注释后只返回原接口长度3,即ok\n。lua脚本默认必须放在/usr/local/nginx目录下,否则会找不到。mod......
  • SpringMVC自定义处理返回值demo和异步处理模式DeferredResult demo
    搭建自定义返回值处理器demo新建springboot项目修改pom.xml<!--新增依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><gro......
  • python基础-数据类型(none、集合、字典、浮点数)
    目录1.了解hash2.None类型3.集合(set)3.1定义3.2独有功能3.3公共功能3.4转换3.5其他3.5.1集合的存储原理3.5.2元素必须可哈希3.5.3集合查找元素速度快3.5.4对比和嵌套集合练习题4.字典(dict)4.1定义4.2独有功能练习题4.3公共功能4.4转换4.5其他4.5.1存储原......
  • 字典数据类型内置方法
    字典数据类型内置方法1.作用对于值添加描述信息使用他2.定义方式用{}以逗号隔开加入键值对:key:valueinfo_dict={'name':'wangdapao','age':18,'height':120,'gender':'female','hobby_list':['dapao','basketball'......