#!/usr/bin/env python
#-*-coding:utf-8-*-
import pymysql
import json
import collections conn = pymysql.connect(host='xxx.xxx.xxx.xxx',
user='xxx',
passwd='xxx',
port=3308 ,
charset='xxx',
database='xxx',
cursorclass = pymysql.cursors.DictCursor) sql='select a.*,b.end_time,b.ret_msg,b.sql_sql,b.ddl_ret_status,b.task_id,b.dba_audit_res,c.audit_user as leader_audit_user,c.audit_status as leader_audit_status,c.audit_describe as leader_audit_status from sql_single as a join sql_ddl_information as b on a.`sql_request_id`=b.`sql_request_id` join sql_single_aduit as c on b.`sql_request_id`=c.`sql_request_id`'
cursor = conn.cursor()
cursor.execute(sql)
title=[] ret_msg=[]
for i in cursor.description:
title.append(i[0])
for i in range(cursor.rowcount):
new_dic = collections.OrderedDict()
count_msg=cursor.fetchone()
for key in title:
new_dic[key] = count_msg[key]
ret_msg.append(new_dic) metadata = json.dumps(ret_msg,ensure_ascii=False)
print(title)
print(metadata)

输出结果:

title:
['id', 'username', 'start_time', 'single_describe', 'db_instance_group', 'sql_request_id', 'sql_request_state', 'sql_request_type', 'dc_name', 'dba_describe', 'audit_user', 'select_req_end_time', 'end_time', 'ret_msg', 'sql_sql', 'ddl_ret_status', 'task_id', 'dba_audit_res', 'leader_audit_user', 'leader_audit_status', 'leader_audit_status'] metadata:
[
{
"id": 7,
"username": "xxx",
"start_time": "2018-12-21 17:29:38",
"single_describe": "的地方",
"db_instance_group": "didapinche_test5的Master",
"sql_request_id": "ddl-fbfcc4c802824dbc84c895ff8923cddd",
"sql_request_state": "n",
"sql_request_type": "ddl",
"dc_name": "testing",
"dba_describe": "没有理由.!!!",
"audit_user": "chensanhu",
"select_req_end_time": null,
"end_time": "",
"ret_msg": null,
"sql_sql": "dXNlIHRlc3QyOwp0cnVuY2F0ZSB0ZXN0Mw==",
"ddl_ret_status": "",
"task_id": null,
"dba_audit_res": null,
"leader_audit_user": "zhangkuikui",
"leader_audit_status": "n"
},
{
"id": 15497,
"username": "xxx",
"start_time": "2019-01-09 17:52:12",
"single_describe": "asdasd",
"db_instance_group": "didapinche_test5的Master",
"sql_request_id": "ddl-08187452d019480eb90e041cebf422ae",
"sql_request_state": "y",
"sql_request_type": "ddl",
"dc_name": "testing",
"dba_describe": "123",
"audit_user": "chensanhu",
"select_req_end_time": null,
"end_time": "2019-01-23 12:57:41",
"ret_msg": "eyJleGVjdXRlX2ZhaWxl",
"sql_sql": "dXNlIHRlc3Q=",
"ddl_ret_status": "ok",
"task_id": "1548219460.441335",
"dba_audit_res": "N0YWdlIjogIkNIRUNLRUQifV0=",
"leader_audit_user": "chenlin",
"leader_audit_status": "w"
}
]

pymysql之有序字典的更多相关文章

  1. Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

    Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 im ...

  2. 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

    Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuq ...

  3. python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列

    1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能  Counter 我们从中挑选一些相对常用的方法来举例: 在上面的例子 ...

  4. python模块介绍- collections(5)-OrderedDict 有序字典

    1.3.5 OrderedDict 有序字典 OrderedDict是dict的子类,它记住了内容添加的顺序. import collections print 'Regular dictionary ...

  5. python(3)-计数器,有序字典

    计数器:Counter 在使用计数器之前需要先 import collections >>> import collections >>> obj = collec ...

  6. python有序字典实现代码

    class MyDict(dict): #有序字典实现 def __init__(self): self.li = [] super(MyDict,self).__init__() def __set ...

  7. python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数

    上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...

  8. Python学习笔记——基础篇2【第三周】——计数器、有序字典、元组、单(双)向队列、深浅拷贝、函数、装饰器

    目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双 ...

  9. python 学习 有序字典

    自定义创建有序字典类 dict的__getitem__方法 有些不同,想使用自定义__getitem__方法显示查询key的下标:需要研究 #/usr/bin/env python3 # -*- co ...

随机推荐

  1. Windows 压缩文件到 Linux中解压文件名乱码

    问题 在Windows中将文件夹压缩后,拿到Ubuntu系统中解压,中文文件名乱码 解决 因为两个系统所使用的编码不同,Windows一般使用GBK编码,Ubuntu使用utf8编码,只需要在解压的时 ...

  2. 2019.6.13_SQL语句中----删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test   2.truncate table 表 ...

  3. SpringBoot定时器任务

    Spring Boot使用@Scheduled定时器任务   摘要: Spring Boot之使用@Scheduled定时器任务 假设我们已经搭建好了一个基于Spring Boot项目,首先我们要在A ...

  4. C++ 标准库 std::find 查找

    参见:https://en.cppreference.com/w/cpp/algorithm/find 查找指定字符/数字等. #include <iostream> #include & ...

  5. 剑指Offer-26.二叉搜索树与双向链表(C++/Java)

    题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 分析: 创建两个指针,分别指向要处理的当前元素和当前元素的前一个元素.利用中 ...

  6. 2019 SDN阅读作业

    2019 SDN阅读作业 1.为什么需要SDN?SDN特点? 答:因为随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议 ...

  7. 线上问题排查利器Arthas

    官方文档 下载arthas-boot.jar,然后用java -jar的方式启动: curl -O https://alibaba.github.io/arthas/arthas-boot.jar j ...

  8. BDFramework.Core 学习

    x哥(懂的都懂)的框架, 拿点代码过来做注释. 想了解详情可以去他的github https://github.com/yimengfan/BDFramework.Core # Object file ...

  9. Istio Routing极简教程

    官网文档: https://istio.io/docs/reference/config/networking/#VirtualService 在学习像Istio这样的新技术时,看一下示例应用程序总是 ...

  10. 【shell脚本】显示进度条

    使用动态时针版本显示进度条 [root@VM_0_10_centos shellScript]# cat progressBar.sh #!/bin/bash # 进度条,动态时针版本 # 定义显示进 ...