#!/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. C++学习03_对象

    1.类 类决定了一个对象具有什么样的属性功能. class MyFirstClass { }; //跟C++结构情况相似 //类的第一个字母采用大写是一种习惯的上的标准. //与C++结构情况类似 类 ...

  2. keeplived+lvs(主从热备+负载均衡)

    本次实验基于DR负载均衡模式(直接路由),设置一个VIP(Virtual IP)为192.168.1.225,用户只需要访问这个IP地址即可获得网页服务.其中,负载均衡主机为192.168.1.221 ...

  3. day56_9_20orm中的关键字段,orm查询13方法整合,查询优化和事务。

    一.常用字段. 在orm中有一些字段是常用字段: 1.AutoField 这个字段是自增的,必须填入参数primary_key=True,也就是说这个字段是表的主键,如果表类中没有自增列,就会自动创建 ...

  4. SpringBoot之异步定时任务

    如果每个Scheduled方法是同步执行的,万一有一个发生死锁,那么其他任务就没法执行,下面介绍异步定时任务 异步定时任务 Spring为任务调度与异步方法执行提供了注解支持,即通过在方法上设置@As ...

  5. CF343D Water Tree 树链剖分

    问题描述 LG-CF343D 题解 树剖,线段树维护0-1序列 yzhang:用珂朵莉树维护多好 \(\mathrm{Code}\) #include<bits/stdc++.h> usi ...

  6. vue组件通信传值——Vuex

    一.Vuex介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. Vuex 也集成到 Vu ...

  7. C读取json格式字符串

    python调用C库时参数太多,约定传json格式字符串,C解析 #include<stdio.h> #include<string.h> #include<stdlib ...

  8. Nginx的性能优化方案

    nginx的优化 . gzip压缩优化 . expires缓存有还 . 网络IO事件模型优化 . 隐藏软件名称和版本号 . 防盗链优化 . 禁止恶意域名解析 . 禁止通过IP地址访问网站 . HTTP ...

  9. 谈谈vue.js中methods watch和compute的区别和联系

    methods,watch和computed都是以函数为基础的,但各自却都不同: 1.watch和computed都是以Vue的依赖追踪机制为基础的,它们都试图处理这样一件事情:当某一个数据(称它为依 ...

  10. python I/O复用

    select是阻塞式的方法