1. 本文在提供一种方式,实现执行sql语句 返回字典结果集
  1.      # 连接数据库,数据库的,这里使用的setting中的默认设置,在这里不做具体的介绍,不懂的可以百度一下
  2. conn = MySQLdb.connect(host=settings.DATABASES['default']['HOST'], user=settings.DATABASES['default']['USER'],
  3. passwd=settings.DATABASES['default']['PASSWORD'],
  4. db=settings.DATABASES['default']['NAME'])
  5. cursor = conn.cursor()
  6.  
  7. # 原生sql语句,注意要用六个 "
  8. sql = """ SELECT total_premium,quote_count,order_count from usr_statistics WHERE DAY = 20170422"""
  9. # 执行sql
  10.  
  11. cursor.execute(sql)
  12.  
  13. # 只用于select语句,返回一行的列名
  14. desc = cursor.description
  15. print ""
  16. print desc
  17. # 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))
  18.  
  19. object_dict = [
  20. dict(zip([col[0] for col in desc],row))
  21. for row in cursor.fetchall()
  22. ]
  23.  
  24. cursor.close()
  25.  
  26. print ""
  27. print object_dict
  28. # 下面是object_dict的输出,太长了,已经给其换行
  29.  
  30. # [{'quote_count': 5L, 'total_premium': Decimal('200.00'), 'order_count': 7L},
  31. # {'quote_count': 5L, 'total_premium': Decimal('200.00'), 'order_count': 7L},
  32. # {'quote_count': 45L, 'total_premium': Decimal('999.00'), 'order_count': 78L},
  33. # {'quote_count': 65L, 'total_premium': Decimal('999.00'), 'order_count': 78L},
  34. # {'quote_count': 45L, 'total_premium': Decimal('888.00'), 'order_count': 78L},
  35. # {'quote_count': 123L, 'total_premium': Decimal('523.00'), 'order_count': 23L},
  36. # {'quote_count': 2L, 'total_premium': Decimal('211.00'), 'order_count': 21L},
  37. # {'quote_count': 1L, 'total_premium': Decimal('0.00'), 'order_count': 23L},
  38. # {'quote_count': 23L, 'total_premium': Decimal('213.00'), 'order_count': 23L},
  39. # {'quote_count': 13L, 'total_premium': Decimal('1232.00'), 'order_count': 123L},
  40. # {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 1L},
  41. # {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L},
  42. # {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L},
  43. # {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L},
  44. # {'quote_count': 0L, 'total_premium': Decimal('0.00'), 'order_count': 0L}]
  45.  
  46. object_list = []
  47. object_list_b = []
  48.  
  49. for i in object_dict:
  50. object_list.append(int(i.get("total_premium")))
  51. object_list_b.append(i.get("quote_count"))
  52.  
  53. print ""
  54. print object_list
  55. print object_list_b
  56.  
  57. # object_list输出 [200, 200, 999, 999, 888, 523, 211, 0, 213, 1232, 0, 0, 0, 0, 0]
  58. # object_list_b输出 [5L, 5L, 45L, 65L, 45L, 123L, 2L, 1L, 23L, 13L, 0L, 0L, 0L, 0L, 0L]
  59.  
  60. 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. UVa11988 Broken Keyboard 损坏的键盘【list】

    题目链接:https://vjudge.net/problem/UVA-11988 题目大意: 键盘的home键和end键出现了问题. 在输入一段文本时,home键或end键可能会自动被按下,home ...

  2. SpringMvc接口中转设计(策略+模板方法)

    一.前言 最近带着两个兄弟做支付宝小程序后端相关的开发,小程序首页涉及到很多查询的服务.小程序后端服务在我司属于互联网域,相关的查询服务已经在核心域存在了,查询这块所要做的工作就是做接口中转.参考了微 ...

  3. DevOps: CLM, RLM, RPM, RPD, BSA, BAA, BMA - WOW!

    1. BMC Release Lifecycle Management (RLM) is our suite targeted at managing and automating applicati ...

  4. 利用cookie实现iframe刷新时停留在当前页面

    这段时间第一次用iframe,发现问题还挺多,这次主要解决了一个用cookie实现iframe刷新时停留在当前页面,具体步骤如下: 1.必须在每一个页面中记录下当前的url并存入cookie中,具体代 ...

  5. 如何在github上搭建网站?

    3年前就想写这篇文章了,一直没写,拖到现在,迟到总比不到好,哈哈.github pages只支持静态博客(html,css,js),不支持服务端(php,physon). 一.尝试一下 1.在电脑上安 ...

  6. ppt标签打开文件 word标签打开文件 窗口打开文件 粘贴默认方式

    ppt标签打开文件 word标签打开文件 word窗口打开文件 ppt粘贴默认方式 word粘贴默认方式 ppt粘贴默认方式 只保留文本 == 通过 视图 切换窗口. == 层叠  样式 如下. == ...

  7. HDU.4700.Flow(构造 最小割树)

    题目链接 \(Description\) 给定\(n\)以及\(n\)个点任意两点之间的最大流,求一张无向图满足给定条件. \(n\leq100\). \(Solution\) 有些类似最小割树. 我 ...

  8. (数据存储)Android系统存储数据

    移动设备需要存储数据,处理数据并输出处理后的信息. 主题一:存储键值对 If you have a relatively small collection of key-values that you ...

  9. Python3 与 C# 并发编程之~ Net篇

    NetCore并发编程 示例代码:https://github.com/lotapp/BaseCode/tree/master/netcore/4_Concurrency 先简单说下概念(其实之前也有 ...

  10. Elastic{ON}参会随手记

    Elastic{ON} 同事送了一张Elastic{ON}的票,因为我们的产品中用到的ELK全家桶,实话说用的体量还挺大的,因此非常想去参加这次的发布会. 7.0的新特性 上午的会议是来自总部的一名工 ...