Python3实现将本地JSON大数据文件写入MySQL数据库的方法


Posted in Python onJune 13, 2018

本文实例讲述了Python3实现将本地JSON大数据文件写入MySQL数据库的方法。分享给大家供大家参考,具体如下:

最近导师给了一个yelp上的评论数据,数据量达到3.55个G,如果进行分析时直接使用本地文件,选择python来分析,那么效率是非常低的;另一方面使用SQL来储存文本文件最为安全,之前使用CSV,txt存储的文本文件最后莫名其妙地出现一些奇怪字符,导致读取数据分割时出现错乱。下面给出一个简单的代码,将本地JSON文件内容存入数据库。

说明:python版本为3.5,使用第三方库为pymysql。因为数据量比较大,不能一次性读取到内存(否则内存报错),这里使用逐行读取的方式。数据库先创建后再使用以下代码;

import json
import pymysql
# 读取review数据,并写入数据库
# 导入数据库成功,总共4736897条记录
def prem(db):
  cursor = db.cursor()
  cursor.execute("SELECT VERSION()")
  data = cursor.fetchone()
  print("Database version : %s " % data) # 结果表明已经连接成功
  cursor.execute("DROP TABLE IF EXISTS review") # 习惯性
  sql = """CREATE TABLE review (
       review_id VARCHAR(100),
       user_id VARCHAR(100),
       business_id VARCHAR(200),
       stars INT,
       text VARCHAR(10000) NOT NULL,
       useful INT,
       funny INT,
       cool INT)"""
  cursor.execute(sql) # 根据需要创建一个表格
def reviewdata_insert(db):
  with open('E:/data/yelp_data/dataset/review.json', encoding='utf-8') as f:
    i = 0
    while True:
      i += 1
      print(u'正在载入第%s行......' % i)
      try:
        lines = f.readline() # 使用逐行读取的方法
        review_text = json.loads(lines) # 解析每一行数据
        result = []
        result.append((review_text['review_id'], review_text['user_id'],      review_text['business_id'],review_text['stars'], review_text['text'], review_text['useful'],
              review_text['funny'], review_text['cool']))
        print(result)
        inesrt_re = "insert into review(review_id, user_id, business_id, stars, text, useful,      funny, cool) values (%s, %s, %s, %s,%s, %s,%s, %s)"
        cursor = db.cursor()
        cursor.executemany(inesrt_re, result)
        db.commit()
      except Exception as e:
        db.rollback()
        print(str(e))
        break
if __name__ == "__main__": # 起到一个初始化或者调用函数的作用
  db = pymysql.connect("localhost", "root", "password(你的密码)", "数据库名称", charset='utf8')
  cursor = db.cursor()
  prem(db)
  reviewdata_insert(db)
  cursor.close()
Python 相关文章推荐
使用pdb模块调试Python程序实例
Jun 02 Python
python实现决策树分类算法
Dec 21 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
python dlib人脸识别代码实例
Apr 04 Python
django连接mysql数据库及建表操作实例详解
Dec 10 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
关于Django Models CharField 参数说明
Mar 31 Python
python利用faker库批量生成测试数据
Oct 15 Python
python3中确保枚举值代码分析
Dec 02 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
python实现三次密码验证的示例
Apr 29 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 Python
解决Mac安装scrapy失败的问题
Jun 13 #Python
mac安装scrapy并创建项目的实例讲解
Jun 13 #Python
解决Tensorflow安装成功,但在导入时报错的问题
Jun 13 #Python
基于pip install django失败时的解决方法
Jun 12 #Python
基于Python pip用国内镜像下载的方法
Jun 12 #Python
pip安装时ReadTimeoutError的解决方法
Jun 12 #Python
解决pip install的时候报错timed out的问题
Jun 12 #Python
You might like
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
javascript倒计时功能实现代码
2012/06/07 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
详解Vue方法与事件
2017/03/09 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
python分割文件的常用方法
2014/11/01 Python
Python中处理字符串之endswith()方法的使用简介
2015/05/18 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Python tcp传输代码实例解析
2020/03/18 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
后勤园长自我鉴定
2013/10/17 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
云冈石窟导游词
2015/02/04 职场文书
西岭雪山导游词
2015/02/06 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
贷款工作证明模板
2015/06/12 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书