用Python将json数据装载到mysql
来源:互联网 发布:阿里巴巴农村淘宝面试 编辑:程序博客网 时间:2024/06/07 03:10
1、相关说明
此脚本可以将json数据解析之后装载到Mysql;暂未进行大批量装载方面的优化处理;由于json的字段定义太灵活,所以暂时未进行太自动化的处理,要装载的表名也需要先手动建好。
数据传入参数有:dbConfigName, tabName, jsonPath, fileName。
依赖的库有:MySQLdb、json,尤其MySQLdb需要事先安装好。
2、Python脚本及测试示例
/Users/nisj/PycharmProjects/BiDataProc/oldPythonBak/jsonData2mysql.py
3、测试表建表
此脚本可以将json数据解析之后装载到Mysql;暂未进行大批量装载方面的优化处理;由于json的字段定义太灵活,所以暂时未进行太自动化的处理,要装载的表名也需要先手动建好。
数据传入参数有:dbConfigName, tabName, jsonPath, fileName。
依赖的库有:MySQLdb、json,尤其MySQLdb需要事先安装好。
2、Python脚本及测试示例
/Users/nisj/PycharmProjects/BiDataProc/oldPythonBak/jsonData2mysql.py
# -*- coding=utf-8 -*-import MySQLdbimport warningsimport datetimeimport sysimport jsonreload(sys)sys.setdefaultencoding('utf8')warnings.filterwarnings("ignore")# target Database configtargetMysqlConfig_funnyai_data = { # 'host': 'MysqlHostInnerIp', 'host': 'MysqlHostOuterIp', 'user': 'MysqlUser', 'passwd': 'MysqlPass', 'port': 6603, 'db': 'funnyai_data'}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, Nonedef json2mysql(dbConfigName, tabName, jsonPath, fileName): conn, curr = getDB(dbConfigName) curr.execute("truncate table {tabName};".format(tabName=tabName)) with open('{jsonPath}{fileName}.json'.format(jsonPath=jsonPath, fileName=fileName), 'r') as f: for line in f: lineDict=json.loads(line) colDesc = '' colValue = '' for key in lineDict.keys(): colDesc = colDesc + key + ',' colValue = colValue + '\'' + lineDict[key] + '\',' insertSql = "insert into {tabName}({colDesc}) select {colValue} ;".format(tabName=tabName, colDesc=colDesc[:-1], colValue=colValue[:-1]) curr.execute(insertSql) f.close() curr.close() conn.close()# Batch TestdbConfigName = 'targetMysqlConfig_funnyai_data'tabName = "xx_python_json"jsonPath = '/Users/nisj/Desktop/'fileName = 'mysql2json'json2mysql(dbConfigName, tabName, jsonPath, fileName)
3、测试表建表
drop table if exists xx_python_json;create table xx_python_json(uid varchar(20),name varchar(20),phone_num varchar(20),qq varchar(20),area varchar(20),created_time varchar(20));
阅读全文
0 0
- 用Python将json数据装载到mysql
- Python将Mysql分表数据按小时增量装载到Hive示例
- Python自动化拉取Mysql数据并装载到Hive
- Python自动化拉取Mysql数据并装载到Oracle
- Python自动化拉取Mysql数据并装载到Hive
- 用Python将mysql数据导出成json
- ajax获取json数据然后将其装载到jqgrid实现
- python将mysql数据库的数据转换为json数据
- python读取json文件,并将数据插入到mongodb
- python3将接收到的json数据存入数据库【mysql】
- Python自动化拉取Mysql数据并装载到Hive(V2.0)
- Python自动化拉取Mysql数据并装载到Hive(V3.0)
- Python 输出JSON对象数组&写入数据到MySQL
- 使用Python将数据从Access导入到MySQL
- 如何将python中的数据写到mysql数据库中
- python【番外篇】:将xml中的数据写入到mysql中
- 使用Python将Excel中的数据导入到MySQL
- 用python将excel数据写入mysql
- js中 #代表id, .代表class
- 替换空格
- Spring Data JPA Using @Query
- C++ 进阶
- POJ 3175 Finding Bovine Roots 笔记
- 用Python将json数据装载到mysql
- 二、Starting and Stopping Systems in SAP HANA Studio
- HDU2528-Area(计算凸多边形面积,线段和直线交点)
- 链表面试题
- python爬虫(7)——获取京东商品评论信息
- Codeforces Round #423 (Div. 2) C. String Reconstruction思维 D. High Load 构造
- Spring部分注解记录
- Ubuntu titanx CUDA8.0+cudnn5.1+Caffe 安装与遇到的报错
- Oracle卸载