美文网首页
使用python将数据存入SQLite3数据库

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

作者: 苍简 | 来源:发表于2019-02-16 17:30 被阅读52次

    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}

    ]

    }

    image

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

    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')
    
    image
     #向表中插入记录
     
     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()
    
    image

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

    至此,便将Json格式的数据存储到SQLite3数据库中了,可以进行后续的分析和操作了,下面将代码总结一下,修改便可使用。

    image

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

    相关文章

      网友评论

          本文标题:使用python将数据存入SQLite3数据库

          本文链接:https://www.haomeiwen.com/subject/bxrieqtx.html