sqlitePython读取和处理公事后缀为”.sqlite”的数据文件

近年来在施一个项目分析的上,看到出一个后缀为”.sqlite”的数据文件,由于以前没有怎么碰了,就想着怎么用python来开辟并进行数量解析与处理,于是小研究了转。

SQLite是均等慢大流行的干项目数据库,由于她充分轻快,因此为大量应用程序采用。

例如csv文件一律,SQLite可以用数据存储于单个数据文件,以便有利于的享用给任何人员。许多编程语言都支持SQLite数据的拍卖,python语言也非异。

sqlite3是python的一个标准库,可以用来拍卖SQLite数据库。

之所以sqlite3创建和操作数据库文件

于数据库的SQL语句,本文会就此到极致基础的SQL语句,应该无影响看。如果想愈询问,可参照如下网址:
http://www.w3school.com.cn/sql/index.asp

下,我们来使用salite3模块来创造SQLite数据文件,以及开展多少读写操作。主要的步子如下:

  1. 与数据库建立连接,创建数据库文件(.sqlite文件)
  2. 缔造游标(cursor)
  3. 缔造数据表(table)
  4. 通往数表中插入数据
  5. 询问数据

以身作则代码如下:

import sqlite3

with sqlite3.connect('test_database.sqlite') as con:
    c = con.cursor()
    c.execute('''CREATE TABLE test_table
    (date text, city text, value real)''')
    for table in c.execute("SELECT name FROM sqlite_master WHERE type='table'"):
        print("Table", table[0])
    c.execute('''INSERT INTO test_table VALUES
    ('2017-6-25', 'bj', 100)''')
    c.execute('''INSERT INTO test_table VALUES
    ('2017-6-25', 'pydataroad', 150)''')
    c.execute("SELECT * FROM test_table")
    print(c.fetchall())

Table test_table
[('2017-6-25', 'bj', 100.0), ('2017-6-25', 'pydataroad', 150.0)]

有关SQLite数据库被数据的可视化预览,有广大的工具得以实现,我这边用的是SQLite
Studio,是一个免费用的工具,不待安装,下载下来就是可运用,有趣味的同窗可以参考下面的链接。

https://sqlitestudio.pl/index.rvt?act=download

数码预览的意义如下:

sqlite 1

sqlite 2

为此pandas来读取sqlite数据文件

起者代码的周转结果好看来,数据查询的结果是一个由tuple组成的list。python的list数据在进行更加的数码处理同析时,可能会见不顶有利。可以设想一下,假而如果数据库的表中总计来100万实施要又多数据,从list中循环遍历获取数据,效率会比小。

这儿,我们好设想就此pandas提供的函数来打SQLite数据库文件被读取相关数据信息,并保留于DataFrame中,方便后续进一步处理。

Pandas提供了点滴单函数,均可以读取后缀为“.sqlite”数据文件的音。

  • read_sql()
  • read_sql_query()

import pandas as pd

with sqlite3.connect('test_database.sqlite') as con:

    # read_sql_query和read_sql都能通过SQL语句从数据库文件中获取数据信息
    df = pd.read_sql_query("SELECT * FROM test_table", con=con)
    # df = pd.read_sql("SELECT * FROM test_table", con=con)

    print(df.shape)
    print(df.dtypes)
    print(df.head())

(2, 3)
date      object
city      object
value    float64
dtype: object
        date        city  value
0  2017-6-25          bj  100.0
1  2017-6-25  pydataroad  150.0

网站地图xml地图