用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 相关文章推荐
python之yield表达式学习
Sep 02 Python
Python中使用SAX解析xml实例
Nov 21 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 Python
详解python调用cmd命令三种方法
Jul 08 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
Oct 10 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
python与c语言的语法有哪些不一样的
Sep 13 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
用ODBC的分页显示
2006/10/09 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
关于JavaScript中string 的replace
2013/04/12 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
JS中Location使用详解
2015/05/12 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python输出pdf文档的实例
2020/02/13 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
python判断元素是否存在的实例方法
2020/09/24 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
医生个人年终总结
2015/02/28 职场文书
水电施工员岗位职责
2015/04/11 职场文书
党组织结对共建协议书
2016/03/23 职场文书
mysql事务对效率的影响分析总结
2021/10/24 MySQL
Golang 并发下的问题定位及解决方案
2022/03/16 Golang