天天看點

json 插入資料_使用python将資料存入SQLite3資料庫

json 插入資料_使用python将資料存入SQLite3資料庫
json 插入資料_使用python将資料存入SQLite3資料庫

作者:JiekeXu

2017年畢業于某大學院校,從事于資料庫運維行業,一個熱愛Python的DBA

個人公衆号:JiekeXu之路

json 插入資料_使用python将資料存入SQLite3資料庫

 Python從網站上抓取的資料為了可以重複利用,一般都會存儲下來,存儲方式最簡單的會選擇存儲到文本檔案,常見的有方式TXT、CSV、EXCEL等,還有一種方式是将資料存儲到資料庫,這樣也友善管理,常見的關系型資料庫有SQLite3、MySQL,非關系型資料庫有Redis、MongoDB。那麼,這裡就簡單說明怎麼樣将資料存儲到SQLite3。

假設已經将資料抓取下來并已寫入json檔案,為了友善本次演練,這裡是我自己寫的json,防止json寫錯,這裡給出一個位址可自動檢測json格式并将其格式化“http://www.bejson.com/”。下圖是格式化後的Json格式圖。

{

"data":

[

{"id":1,"name":"wangtao","age":21},{"id":2,"name":"lisi","age":22},{"id":3,"name":"wangyang","age":23},{"id":4,"name":"liyang","age":25},{"id":5,"name":"xiaowu","age":25}

]

}

json 插入資料_使用python将資料存入SQLite3資料庫

(Json格式化工具)

簡單的資料庫直接使用SQLite3比較友善,而且Python自帶SQLite3子產品直接導入即可,前面文章《基于Python的SQLite基礎知識學習》已經介紹了SQLite3的使用。

進入主題,取Json檔案裡的資料,因為是檔案流,就需要用到json庫裡的load方法,把Json對象轉化為Python對象,逐行導入sql語句。

sql ="insert into student(id,name,age) values(%d,'%s',%d)"% (line['id'],line['name'],line['age'])

具體步驟

1、逐行讀取目前路徑下的json檔案

with open("data.json",’r’) as f:

              data = json.load(f)

json 插入資料_使用python将資料存入SQLite3資料庫

2、對資料進行解析

假設Json為以上data格式,則可通過data[‘id’]和data[‘name’] 、data[‘age’]分别擷取id和name、age字段。

3、資料入庫

利用python内置的sqlite3子產品實作對sqlite資料庫的操作;注意sql語句中使用了格式化輸出的占位符%s和%d來表示将要插入的變量,其中%s需要加引号''。

# -*- conding:utf-8 -*-

#導入sqlite3庫檔案

import sqlite3

import json

#資料庫存在時,直接連接配接;不存在時,建立相應資料庫,此時目前目錄下可以找到對應的資料庫檔案。

conn = sqlite3.connect("customers.db")

print ('Opened database successfully')

#建立CNAME表

conn.execute('''CREATE TABLE CNAME

      (ID INT PRIMARY KEY     NOT NULL,

      NAME           TEXT    NOT NULL,

      AGE            INT     NOT NULL);''')

print ('Table created successfully')

json 插入資料_使用python将資料存入SQLite3資料庫

#向表中插入記錄

with open("data.json",’r’) as f:

              data = json.load(f)

              for line in data[‘data’]:

              #注意sql語句中使用了格式化輸出的占位符%s和%d來表示将要插入的變量,其中%s需要加引号''

                  sql = "insert into cname(name,id,age) values('%s',%d,%d)" % (line['name'],line['id'],line['age'])

                  conn.execute(sql)

                  conn.commit()

                  #關閉資料庫連接配接

                  conn.close()

json 插入資料_使用python将資料存入SQLite3資料庫
4、查詢和确認資料

可以通過sql語句查詢和确認資料入庫情況。

conn = sqlite3.connect("customers.db")

cursor = conn.execute("select id,name,age  from cname")

for row in cursor:

  print ('ID = ', row[0],'  NAME = ',row[1],'  AGE = ', row[2])

print ('Operation done successfully')

conn.close()

json 插入資料_使用python将資料存入SQLite3資料庫

至此,便将Json格式的資料存儲到SQLite3資料庫中了,可以進行後續的分析和操作了,下面将代碼總結一下,修改便可使用。

json 插入資料_使用python将資料存入SQLite3資料庫

環境說明:基于Ubuntu16.04的Python3.5.2版本;關于SQLite3就介紹這麼多了,各位小夥伴們下次見哦!

作者好文推薦:基于Python的SQLite基礎知識學習

json 插入資料_使用python将資料存入SQLite3資料庫

Python的愛好者社群曆史文章大合集:

2018年Python愛好者社群曆史文章合集(作者篇)

json 插入資料_使用python将資料存入SQLite3資料庫

福利:文末掃碼關注公衆号,“Python愛好者社群”,開始學習Python課程:

關注後在公衆号内回複“ 課程 ”即可擷取:

小編的轉行入職資料科學(資料分析挖掘/機器學習方向)【最新免費】

小編的Python的入門免費視訊課程!

小編的Python的快速上手matplotlib可視化庫!

崔老師爬蟲實戰案例免費學習視訊。

陳老師資料分析報告擴充制作免費學習視訊。

玩轉大資料分析!Spark2.X + Python精華實戰課程免費學習視訊。

json 插入資料_使用python将資料存入SQLite3資料庫
json 插入資料_使用python将資料存入SQLite3資料庫
json 插入資料_使用python将資料存入SQLite3資料庫

愛我請給我好看!

json 插入資料_使用python将資料存入SQLite3資料庫