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

yipeiwu_com6年前Python基础

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中的变量、引用、拷贝和作用域的问题

解析Python中的变量、引用、拷贝和作用域的问题

在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样。在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可。但是,当用变量的时候,必须要给这个变量赋值;如果只写...

Python发展简史 Python来历

Python发展简史 Python来历

Python是我喜欢的语言,简洁,优美,容易使用。前两天,我很激昂的向朋友宣传Python的好处。 听过之后,朋友问我:好吧,我承认Python不错,但它为什么叫Python呢? 我不是...

python感知机实现代码

python感知机实现代码

本文实例为大家分享了python感知机实现的具体代码,供大家参考,具体内容如下 一、实现例子 李航《统计学方法》p29 例2.1 正例:x1=(3,3), x2=(4,3), 负例:x3...

Python wxpython模块响应鼠标拖动事件操作示例

Python wxpython模块响应鼠标拖动事件操作示例

本文实例讲述了Python wxpython模块响应鼠标拖动事件操作。分享给大家供大家参考,具体如下: wxpython鼠标拖动事件小案例: #coding:UTF-8 import...

python同步两个文件夹下的内容

本文实例为大家分享了python同步两个文件夹下的内容,供大家参考,具体内容如下 import os import shutil import time import logging...