欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3實現(xiàn)將本地JSON大數(shù)據(jù)文件寫入MySQL數(shù)據(jù)庫的方法

 更新時間:2018年06月13日 09:40:19   作者:layman2016  
這篇文章主要介紹了Python3實現(xiàn)將本地JSON大數(shù)據(jù)文件寫入MySQL數(shù)據(jù)庫的方法,涉及Python針對json大數(shù)據(jù)文件的逐行讀取、mysql數(shù)據(jù)庫寫入等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python3實現(xiàn)將本地JSON大數(shù)據(jù)文件寫入MySQL數(shù)據(jù)庫的方法。分享給大家供大家參考,具體如下:

最近導(dǎo)師給了一個yelp上的評論數(shù)據(jù),數(shù)據(jù)量達(dá)到3.55個G,如果進(jìn)行分析時直接使用本地文件,選擇python來分析,那么效率是非常低的;另一方面使用SQL來儲存文本文件最為安全,之前使用CSV,txt存儲的文本文件最后莫名其妙地出現(xiàn)一些奇怪字符,導(dǎo)致讀取數(shù)據(jù)分割時出現(xiàn)錯亂。下面給出一個簡單的代碼,將本地JSON文件內(nèi)容存入數(shù)據(jù)庫。

說明:python版本為3.5,使用第三方庫為pymysql。因為數(shù)據(jù)量比較大,不能一次性讀取到內(nèi)存(否則內(nèi)存報錯),這里使用逐行讀取的方式。數(shù)據(jù)庫先創(chuàng)建后再使用以下代碼;

import json
import pymysql
# 讀取review數(shù)據(jù),并寫入數(shù)據(jù)庫
# 導(dǎo)入數(shù)據(jù)庫成功,總共4736897條記錄
def prem(db):
  cursor = db.cursor()
  cursor.execute("SELECT VERSION()")
  data = cursor.fetchone()
  print("Database version : %s " % data) # 結(jié)果表明已經(jīng)連接成功
  cursor.execute("DROP TABLE IF EXISTS review") # 習(xí)慣性
  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) # 根據(jù)需要創(chuàng)建一個表格
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) # 解析每一行數(shù)據(jù)
        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__": # 起到一個初始化或者調(diào)用函數(shù)的作用
  db = pymysql.connect("localhost", "root", "password(你的密碼)", "數(shù)據(jù)庫名稱", charset='utf8')
  cursor = db.cursor()
  prem(db)
  reviewdata_insert(db)
  cursor.close()

PS:這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json

JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat

在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python操作json技巧總結(jié)》、《Python+MySQL數(shù)據(jù)庫程序設(shè)計入門教程》、《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python數(shù)學(xué)運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • Django 中使用流響應(yīng)處理視頻的方法

    Django 中使用流響應(yīng)處理視頻的方法

    這篇文章主要介紹了Django 中使用流響應(yīng)處理視頻的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • python將excel轉(zhuǎn)換為csv的代碼方法總結(jié)

    python將excel轉(zhuǎn)換為csv的代碼方法總結(jié)

    在本篇文章里小編給大家分享了關(guān)于python如何將excel轉(zhuǎn)換為csv的實例方法和代碼內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • Python?pyecharts實時畫圖自定義可視化經(jīng)緯度熱力圖

    Python?pyecharts實時畫圖自定義可視化經(jīng)緯度熱力圖

    這篇文章主要為大家介紹了Python?pyecharts實時畫圖自定義經(jīng)緯度熱力圖實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python對接六大主流數(shù)據(jù)庫(只需三步)

    Python對接六大主流數(shù)據(jù)庫(只需三步)

    這篇文章主要介紹了Python對接六大主流數(shù)據(jù)庫(只需三步),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中用PIL庫批量給圖片加上序號的教程

    Python中用PIL庫批量給圖片加上序號的教程

    這篇文章主要介紹了Python中用PIL庫批量給圖片加上序號的教程,PIL庫是Python中一個非常強(qiáng)大的處理圖片的庫,需要的朋友可以參考下
    2015-05-05
  • python @property的用法及含義全面解析

    python @property的用法及含義全面解析

    下面小編就為大家分享一篇python @property的用法及含義全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解

    Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解

    今天小編就為大家分享一篇Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中的Super用法示例詳解

    Python中的Super用法示例詳解

    Python中可以直接通過調(diào)用父類名調(diào)用父類方法,在多重繼承中,使用super()是一個很好的習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于Python中Super用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 利用pyecharts讀取csv并進(jìn)行數(shù)據(jù)統(tǒng)計可視化的實現(xiàn)

    利用pyecharts讀取csv并進(jìn)行數(shù)據(jù)統(tǒng)計可視化的實現(xiàn)

    這篇文章主要介紹了利用pyecharts讀取csv并進(jìn)行數(shù)據(jù)統(tǒng)計可視化的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python命令行解析模塊詳解

    Python命令行解析模塊詳解

    這篇文章主要介紹了Python命令行解析模塊詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02

最新評論