首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用python将数据存入SQLite3数据库

作者:JiekeXu

2017年毕业于某本科院校,从事于数据库运维行业,一个热爱Python的DBA

个人公众号:JiekeXu之路

Python从网站上抓取的数据为了可以重复利用,一般都会存储下来,存储方式最简单的会选择存储到文本文件,常见的有方式TXT、CSV、EXCEL等,还有一种方式是将数据存储到数据库,这样也方便管理,常见的关系型数据库有SQLite3、MySQL,非关系型数据库有Redis、MongoDB。那么,这里就简单说明怎么样将数据存储到SQLite3。

{

"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格式化工具)

简单的数据库直接使用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)

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')

#向表中插入记录

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()

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格式的数据存储到SQLite3数据库中了,可以进行后续的分析和操作了,下面将代码总结一下,修改便可使用。

环境说明:基于Ubuntu16.04的Python3.5.2版本;关于SQLite3就介绍这么多了,各位小伙伴们下次见哦!

Python的爱好者社区历史文章大合集

小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】

小编的Python的入门免费视频课程!

小编的Python的快速上手matplotlib可视化库!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告扩展制作免费学习视频。

玩转大数据分析!Spark2.X + Python精华实战课程免费学习视频。

爱我请给我好看!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190216B05MTX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券