用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 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
解析Python中的变量、引用、拷贝和作用域的问题
Apr 07 Python
python 获取字符串MD5值方法
May 29 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
python把1变成01的步骤总结
Feb 27 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
Python制作词云图代码实例
Sep 09 Python
python的reverse函数翻转结果为None的问题
May 11 Python
Python colormap库的安装和使用详情
Oct 06 Python
python用tkinter开发的扫雷游戏
Jun 01 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
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
IE与firefox之jquery用法区别
2008/10/03 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python工程师面试必备25条知识点
2018/01/17 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
数据库连接池的工作原理
2012/09/26 面试题
C++:局部变量能否和全局变量重名
2014/03/03 面试题
师生聚会感言
2014/01/26 职场文书
眼镜促销方案
2014/03/15 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
公司开业致辞
2015/07/29 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
Python学习之os包使用教程详解
2022/03/21 Python
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python