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 相关文章推荐
python实现进程间通信简单实例
Jul 23 Python
在Python中使用sort()方法进行排序的简单教程
May 21 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
python连接mongodb密码认证实例
Oct 16 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python爬虫文件下载图文教程
Dec 23 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
Django框架模板用法入门教程
Nov 04 Python
python 深度学习中的4种激活函数
Sep 18 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 Python
Python基于百度AI实现抓取表情包
Jun 27 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
python动态进度条的实现代码
2019/07/03 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
优秀部门获奖感言
2014/02/14 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
2015年底工作总结范文
2015/05/15 职场文书
二年级作文之动物作文
2019/11/13 职场文书