专栏首页JiekeXu之路使用python将数据存入SQLite3数据库

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

简单的数据库直接使用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数据库中了,可以进行后续的分析和操作了,下面将代码总结一下,修改便可使用,如若图片看起来不方便,【JiekeXu_IT】公众号后台回复【SQLite3】获取本节源码。

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

本文分享自微信公众号 - JiekeXu之路(JiekuXu_IT)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 给ArcGIS配一个Jupyer Notebook

    前几天去德清,看到他们演示的全新数据科学服务器:Notebook Server,确实很好用。在之前,我也用过Jupyer Notebook来处理数据。但FME实...

    数据处理与分析
  • FME中最常用的几个转换器

    如果这个也能作为转换器的话,是的,这是每个模板中都有的转换器!是当之无愧的NO.1。

    数据处理与分析
  • python网络爬虫(13)博客园用户信息爬取

    需要cookies绕过登录,使用selenium在Firefox下模拟。需要安装geck...?插件,另外,数据存储在sqlite,需要安装。

    嘘、小点声
  • python网络爬虫(10)分布式爬虫爬取静态数据

    爬虫应该能够快速高效的完成数据爬取和分析任务。使用多个进程协同完成一个任务,提高了数据爬取的效率。

    嘘、小点声
  • 数据挖掘学习小组之(Python基础篇)

    Python,是唯一一个,我会写的语言!而数据挖掘学习小组,也选了Python。好开心!

    数据处理与分析
  • python网络爬虫(14)使用Scrapy搭建爬虫框架

    爬虫框架也许能简化工作量,提高效率等。scrapy是一款方便好用,拓展方便的框架。

    嘘、小点声
  • Github 热门趋势 App(WeCode)后端接口爬虫

    Github Trending 是 Github 上每天的热门项目或者库的排行版。

    阳仔
  • 数据分析之最优化

    在上次的fme用户大会会后,我写了一点感想。在很早之前,我就觉得单纯的做数据处理是没什么前途的,所以要做分析,并且分析中有处理,处理中有分析。仅仅在处理中做一些...

    数据处理与分析
  • 做数据处理要遵守的一些规则

    数据处理与分析
  • Python对时间的支持

    在数据处理中,经常要进行时间相关的处理,有时候只是简单的时间格式转换,而有时,要计算两个时间的间隔。需求总是五花八门,但,有Python的话,这些处理都变的简单...

    数据处理与分析

扫码关注云+社区

领取腾讯云代金券