python MySQL执行SQL查询结果返回字典
写自动化测试的时候我希望执行数据库前置任务,把数据库查询的结果作为请求的参数,但是正常返回结果为列表嵌套里面,这样就会影响到关键字准确的获取,特别的受限于SQL的查询字段的的顺序,所以希望返回的单条数据结果是字典,返回结果为多条数据的时统一存放在列表中便于对数据遍历,同时我在传入参数的时候可以准确的获取关键字;
# -*- coding: utf-8 -*-
# @Time : 2018/12/30 18:39
# @Author : Hunk
# @Email : liuqiang_cl@163.com
# @File : ex01.py
# @Software: PyCharm import pymysql db = pymysql.connect(host='47.104.149.180', user="root", passwd="root", db='movie', port=3306, charset='utf8')
cursor = db.cursor() sql = """select name from admin; """ cursor.execute(sql) desc = cursor.description # 获取字段的描述,默认获取数据库字段名称,重新定义时通过AS关键重新命名即可
data_dict = [dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall()] # 列表表达式把数据组装起来 cursor.close() db.close() print(data_dict)
/*执行SQL以后返回的查询结果*/
[{'name': 'admin'}, {'name': 'admin1'}]
/*如果以元组的形式返回数据*/
通过元组返回的数据,如果获取的时候需要通过便利或者根据索引来获取指定数据,但是如果元组的长度变更,会造成获取数据的索引变动,容易对自己的代码的耦合性比较高。
(('admin',), ('admin1',))
对比两种返回的结果,明显以字典放的结果更容易被操作,也可以知道具体是哪个字段返回的结果,不会受限于SQL的变动而更改自己的代表,但是最后统一放在列表换是元组,这个是根据自己的习惯来处理,没有特定的要求。
python MySQL执行SQL查询结果返回字典的更多相关文章
- django原生sql查询如何返回字典格式
django原生sql查询,默认返回的是元祖.如果想返回字典格式,需要自行封装: http://www.360doc.com/content/17/0802/11/9200790_676042880. ...
- MySQL执行sql查询并上传至远程服务器
最近项目中有需要做一个shell脚本,可以对一个数据库执行sql操作,并将结果转为txt,筛选结果用tab隔开,保存至一个远程服务器上,以供其他人用Excel读取用txt中的内容. MySQL中将结果 ...
- EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值
一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为 -1 ,sqlserver 里面 还没有测试过 using (var ctx = new MyDbConte ...
- MySQL执行一个查询的过程
总体流程 客户端发送一条查询给服务器: 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段: 服务器端进行SQL解析.预处理,再由优化器生成对应的执行计划: MyS ...
- 深入MySQL(四):MySQL的SQL查询语句性能优化概述
关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...
- Oracle执行SQL查询语句的步骤
Oracle执行SQL查询语句的步骤 如果用户在SQL*Plus下输入了如下查询语句:SELECT * FROM dept: 查询语句的处理主要包括三个过程:编译(parse).执行(execute) ...
- mysql执行sql脚本
最近用mysql执行sql脚本,遇到一些问题,顺便记录一下笔记. 首先,先开启mysql服务,创建一个空数据库(脚本里没有创建数据库) 执行脚本有两个方法 1.未连接数据库:在Windows下使用cm ...
- mysql执行sql脚本文件
mysql执行sql脚本文件 方法一:使用cmd命令执行(windows下,unix或Linux在的其控制台下) [MySQL的bin目录]\mysql –u用户名 –p密码 –D数据库<[sq ...
- MySQL 执行SQL脚本 报ERROR 1231 (42000)的解决办法【转】
今天在source mysqldump 备份文件时,发现导入的过程中报如下的错误: ERROR 1231 (42000): Variable 'time_zone' can't be set to t ...
随机推荐
- SpringCloud----熔断机制 -- 断路器hystrix
参考借鉴:http://www.cnblogs.com/chry/p/7279856.html SpringCloud Netflix实现了断路器库的名字叫Hystrix. 在微服务架构下,通常会有多 ...
- Maven中添加镜像
Maven库在天朝的下载速度实在是感人,所以添加镜像之后速度会提升很多. 在maven的settings.xml 文件里配置mirrors的子节点,添加如下mirror <mirror> ...
- mysql事务特点总结
1.mysql事务有4个隔离级别,以及会出现的问题如下图: 2. 脏读: 开启事务A,B.事务A在还没有提交的情况下,假如第一次查询id=1的用户的age=24.事务B执行了update 表 set ...
- springboot整合mybatics PLUS
首先添加maven依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactI ...
- java第五周作业
Java Applet Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程 ...
- WPF popup自动关闭
var tileMore = new Tile { Height = , Width = , Background = , , )), Title = "更多...", }; ti ...
- centos6.5卸载及安装git
一.卸载原有的git 用whereis git命令来检查是否已经安装了git版本的 再使用命令:yum remove git卸载git 二.安装git (一)官网下载:https://mirrors. ...
- 使用LSTM-RNN建立股票预测模型
硕士毕业之前曾经对基于LSTM循环神经网络的股价预测方法进行过小小的研究,趁着最近工作不忙,把其中的一部分内容写下来做以记录. 此次股票价格预测模型仅根据股票的历史数据来建立,不考虑消息面对个股的影响 ...
- flex 布局 实现电商网页菜单的多级分类展示
用flex,实现多级菜单分类展示,这里记录一下,方便以后查阅. 效果展示如下: 跟上面floor的设计差不多,鼠标hover全部商品分类的时候,将下拉列表展示在指定区域,这个类似鼠标悬浮商品图片期待上 ...
- python基础学习1(linux命令)
读研时转人工智能,机器学习方向,必然要用到python,于是开始自学. 1.环境: 使用linux环境下python编译,熟悉各种基本操作. 2.书籍: -- 笨方法学python -- a b ...