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创建XML文档
Mar 01 Python
python写xml文件的操作实例
Oct 05 Python
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
Python第三方库的安装方法总结
Jun 06 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
python自动12306抢票软件实现代码
Feb 24 Python
详解django+django-celery+celery的整合实战
Mar 19 Python
python tkinter基本属性详解
Sep 16 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php读取数据库信息的几种方法
2008/05/24 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
Python中http请求方法库汇总
2016/01/06 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
Python装饰器知识点补充
2018/05/28 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
电脑售后服务承诺书
2014/03/27 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
加强党性修养心得体会
2016/01/21 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript