写自动化测试的时候我希望执行数据库前置任务,把数据库查询的结果作为请求的参数,但是正常返回结果为列表嵌套里面,这样就会影响到关键字准确的获取,特别的受限于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的变动而更改自己的代表,但是最后统一放在列表换是元组,这个是根据自己的习惯来处理,没有特定的要求。

最新文章

  1. C# 反射研究
  2. Android开发学习之路-提升用户体验小技巧
  3. iTextSharp带中文转换出来的PDF文档显示乱码
  4. python 的重载
  5. Java多线程(3) Volatile的实现原理
  6. JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板
  7. 杭电ACM2096--小明A+B
  8. NC portal怎么重新开始入门,整个配置过程包括配置一个节点
  9. Android Studio SDK Manager无法正常下载如何设置
  10. Hadoop Java Hdfs API
  11. ZOJ2006 一道很尴尬的string操作题
  12. androidkiller连接模拟器并修改源码调试
  13. Java线程池(待续)
  14. iOS开发之#impor与#include的区别
  15. npm link 命令解析
  16. mongoDB-权限控制
  17. doxygen
  18. 创建一个版本库,把文件夹用Git管理起来
  19. centos 7.4安装教程
  20. fis前端开发框架

热门文章

  1. FBV和CBV装饰器
  2. win10切换AHCI模式
  3. 第二次scrum冲刺
  4. 《团队-爬虫豆瓣top250项目-团队一阶段互评》
  5. 安装完成IIS后找不到IIS Admin Service
  6. re+正则01
  7. SpringBoot的学习【6.YML 和 Properties 的语法】
  8. 搭建QT环境
  9. Ubuntu下useradd与adduser区别
  10. 嵌入式C语言编译器