本文在提供一种方式,实现执行sql语句  返回字典结果集 
     # 连接数据库,数据库的,这里使用的setting中的默认设置,在这里不做具体的介绍,不懂的可以百度一下
conn = MySQLdb.connect(host=settings.DATABASES['default']['HOST'], user=settings.DATABASES['default']['USER'],
passwd=settings.DATABASES['default']['PASSWORD'],
db=settings.DATABASES['default']['NAME'])
cursor = conn.cursor() # 原生sql语句,注意要用六个 "
sql = """ SELECT total_premium,quote_count,order_count from usr_statistics WHERE DAY = 20170422"""
# 执行sql cursor.execute(sql) # 只用于select语句,返回一行的列名
desc = cursor.description
print ""
print desc
# desc 将会输出 (('total_premium', 246, 7, 26, 26, 2, 0), ('quote_count', 3, 3, 11, 11, 0, 0), ('order_count', 3, 3, 11, 11, 0, 0)) object_dict = [
dict(zip([col[0] for col in desc],row))
for row in cursor.fetchall()
] cursor.close() print ""
print object_dict
# 下面是object_dict的输出,太长了,已经给其换行 # [{'quote_count': 5L, 'total_premium': Decimal('200.00'), 'order_count': 7L},
# {'quote_count': 5L, 'total_premium': Decimal('200.00'), 'order_count': 7L},
# {'quote_count': 45L, 'total_premium': Decimal('999.00'), 'order_count': 78L},
# {'quote_count': 65L, 'total_premium': Decimal('999.00'), 'order_count': 78L},
# {'quote_count': 45L, 'total_premium': Decimal('888.00'), 'order_count': 78L},
# {'quote_count': 123L, 'total_premium': Decimal('523.00'), 'order_count': 23L},
# {'quote_count': 2L, 'total_premium': Decimal('211.00'), 'order_count': 21L},
# {'quote_count': 1L, 'total_premium': Decimal('0.00'), 'order_count': 23L},
# {'quote_count': 23L, 'total_premium': Decimal('213.00'), 'order_count': 23L},
# {'quote_count': 13L, 'total_premium': Decimal('1232.00'), 'order_count': 123L},
# {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 1L},
# {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L},
# {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L},
# {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L},
# {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L}] object_list = []
object_list_b = [] for i in object_dict:
object_list.append(int(i.get("total_premium")))
object_list_b.append(i.get("quote_count")) print ""
print object_list
print object_list_b # object_list输出 [200, 200, 999, 999, 888, 523, 211, 0, 213, 1232, 0, 0, 0, 0, 0]
# object_list_b输出 [5L, 5L, 45L, 65L, 45L, 123L, 2L, 1L, 23L, 13L, 0L, 0L, 0L, 0L, 0L] conn.close()

本文链接:http://www.cnblogs.com/xuchunlin/p/6676300.html

python 执行sql得到字典格式数据的更多相关文章

  1. 使用python执行sql语句和外键解析

    一.下载并导入pymysql pip install pymysql && import pymysql db=pymysql.connect(host=) #如果报错host大概率因 ...

  2. python执行 sql 语句

    写的很好 import pymysql conn = pymysql.connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = '12 ...

  3. 使用Python解析豆瓣上Json格式数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  4. 将python的字典格式数据写入excei表中

    上面的为最终结果 import requests import re import xlwt import json # 导入必须的包: xlwt,json,requests,re. headers ...

  5. python入门23 pymssql模块(python连接sql server增删改数据 )

    增删改数据必须connect.commit()才会生效 回滚函数 connect.rollback() 连接数据库 ''' dinghanhua sql server增删改 ''' import py ...

  6. python执行sql语句

    dbname = 'db.sqlite3' dbpath = 'D:\\pyweb\\sf\\db.sqlite3' csvpath = pspath #custom thread number tn ...

  7. Python 学习 第17篇:从SQL Server数据库读写数据

    在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...

  8. python代码执行SQL文件(逐句执行)

    一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的 ...

  9. PHP生成和获取XML格式数据

    在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的X ...

随机推荐

  1. ECMAScript6 入门 Module

    目的:将大程序拆分成互相依赖的小模块文件.CommonJS 和 AMD 两种,前者用于服务器,后者用于浏览器.他俩都是运行时才确定 :ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖 ...

  2. shell 运算符

    shell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果. 一.逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测 ...

  3. java课程作业一,传入字符串求和

    设计思想:在命令行下以字符串形式输入几个数字,使用Double类的静态方法valueof传入字符串得到相应的数值型变量,一个for即可将所有的字符串转化为数值型相加. 程序流程图: 源代码: publ ...

  4. 2028 ACM Lowest Common Multiple Plus

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2028 思路:最一想到的就是暴力求解,从1开始一直到最后的答案,一直来除以给出的数列的数,直到余数为0:当然 ...

  5. [P1306] 斐波那契公约数 (矩阵快速幂+斐波那契数列)

    一开始数据没加强,一个简单的程序可以拿过 gcd(f[n],f[m])=f[gcd(n,m)] 下面这个是加强数据之后的80分代码 #include<bits/stdc++.h> usin ...

  6. async与await线程分配研究

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. C# Json序列化去掉k__BackingField问题的解决方案

    方案一: 如果是WebAPI,可以加入全局设置: GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettin ...

  8. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  9. list-列表练习

    #list列表取值更方便灵活 列表.数组说的都是1个东西#列表中每个字符都有一个编号,就是我们说的下标,从0开始#如果你输入的下标在列表中不存在,会报下标越界的错误 1.查询user表中下标为0的记录 ...

  10. 【组合数】[NOIP2011]选择客栈[c++]

    题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...