用Python将mysql数据导出成json的方法


Posted in Python onAugust 21, 2018

1、相关说明

此脚本可以将Mysql的数据导出成Json格式,导出的内容可以进行select查询确定。

数据传入参数有:dbConfigName, selectSql, jsonPath, fileName。

依赖的库有:MySQLdb、json,尤其MySQLdb需要事先安装好。

2、Python脚本及测试示例

/Users/nisj/PycharmProjects/BiDataProc/oldPythonBak/mysqlData2json.py

# -*- coding=utf-8 -*-
import MySQLdb
import warnings
import datetime
import sys
import json
reload(sys)
sys.setdefaultencoding('utf8')
 
warnings.filterwarnings("ignore")
 
mysqlDb_config = {
  'host': 'MysqlHostIp',
  'user': 'MysqlUser',
  'passwd': 'MysqlPass',
  'port': 50512,
  'db': 'Tv_event'
}
 
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1)
tomorrow = today + datetime.timedelta(days=1)
 
def getDB(dbConfigName):
  dbConfig = eval(dbConfigName)
  try:
    conn = MySQLdb.connect(host=dbConfig['host'], user=dbConfig['user'], passwd=dbConfig['passwd'],
                port=dbConfig['port'])
    conn.autocommit(True)
    curr = conn.cursor()
    curr.execute("SET NAMES utf8");
    curr.execute("USE %s" % dbConfig['db']);
 
    return conn, curr
  except MySQLdb.Error, e:
    print "Mysql Error %d: %s" % (e.args[0], e.args[1])
    return None, None
 
def mysql2json(dbConfigName, selectSql, jsonPath, fileName):
  conn, curr = getDB(dbConfigName)
  curr.execute(selectSql)
  datas = curr.fetchall()
  fields = curr.description
 
  column_list = []
  for field in fields:
    column_list.append(field[0])
 
  with open('{jsonPath}{fileName}.json'.format(jsonPath=jsonPath, fileName=fileName), 'w+') as f:
    for row in datas:
      result = {}
      for fieldIndex in range(0, len(column_list)):
        result[column_list[fieldIndex]] = str(row[fieldIndex])
      jsondata=json.dumps(result, ensure_ascii=False)
      f.write(jsondata + '\n')
  f.close()
 
  curr.close()
  conn.close()
 
# Batch Test
dbConfigName = 'mysqlDb_config'
selectSql = "SELECT uid,name,phone_num,qq,area,created_time FROM match_apply where match_id = 83 order by created_time desc;"
jsonPath = '/Users/nisj/Desktop/'
fileName = 'mysql2json'
mysql2json(dbConfigName, selectSql, jsonPath, fileName)

以上这篇用Python将mysql数据导出成json的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
在Python中操作字典之update()方法的使用
May 22 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
python处理xml文件的方法小结
May 02 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
使用python3 实现插入数据到mysql
Mar 02 Python
PyQt实现计数器的方法示例
Jan 18 Python
利用Opencv实现图片的油画特效实例
Feb 28 Python
python源文件的字符编码知识点详解
Mar 04 Python
Python中的min及返回最小值索引的操作
May 10 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
windows下python 3.6.4安装配置图文教程
Aug 21 #Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 #Python
Python socket实现的简单通信功能示例
Aug 21 #Python
Python多进程原理与用法分析
Aug 21 #Python
python安装twisted的问题解析
Aug 21 #Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 #Python
Python多线程原理与用法详解
Aug 20 #Python
You might like
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
长安大学毕业生自我鉴定
2014/01/17 职场文书
陈欧的广告词
2014/03/18 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
在校生证明
2015/06/17 职场文书
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang