Skip to main content

SimpleSQLite is a python library to simplify the table creation and data insertion in SQLite database.

Project description

SimpleSQLite

https://img.shields.io/pypi/pyversions/SimpleSQLite.svg https://travis-ci.org/thombashi/SimpleSQLite.svg?branch=master https://ci.appveyor.com/api/projects/status/b564t8y34lkcd1hq/branch/master?svg=true https://coveralls.io/repos/github/thombashi/SimpleSQLite/badge.svg?branch=master

Summary

SimpleSQLite is a python library to simplify the table creation and data insertion in SQLite database.

Feature

  • Automatic table creation from data

  • Support various data types of record(s) insertion into a table:
    • dictionary

    • namedtuple

    • list

    • tuple

  • Create table(s) from:
    • CSV file/text

    • JSON file/text

    • Microsoft Excel TM file

    • Google Sheets

Examples

Create a table

Create a table from data matrix

from simplesqlite import SimpleSQLite
import six

con = SimpleSQLite("sample.sqlite", "w")
table_name = "sample_table"

# create table -----
data_matrix = [
    [1, 1.1, "aaa", 1,   1],
    [2, 2.2, "bbb", 2.2, 2.2],
    [3, 3.3, "ccc", 3,   "ccc"],
]
con.create_table_with_data(
    table_name="sample_table",
    attribute_name_list=["attr_a", "attr_b", "attr_c", "attr_d", "attr_e"],
    data_matrix=data_matrix)

# display values in the table -----
six.print_(con.get_attribute_name_list(table_name))
result = con.select(select="*", table_name=table_name)
for record in result.fetchall():
    six.print_(record)

# display data type for each column in the table -----
six.print_(con.get_attribute_type_list(table_name))
['attr_a', 'attr_b', 'attr_c', 'attr_d', 'attr_e']
(1, 1.1, u'aaa', 1.0, u'1')
(2, 2.2, u'bbb', 2.2, u'2.2')
(3, 3.3, u'ccc', 3.0, u'ccc')
(u'integer', u'real', u'text', u'real', u'text')

Insert records into a table

Insert dictionary

from simplesqlite import SimpleSQLite
import six

table_name = "sample_table"
con = SimpleSQLite("sample.sqlite", "w")
con.create_table_with_data(
    table_name,
    attribute_name_list=["attr_a", "attr_b", "attr_c", "attr_d", "attr_e"],
    data_matrix=[[1, 1.1, "aaa", 1,   1]])

con.insert(
    table_name,
    insert_record={
        "attr_a": 4,
        "attr_b": 4.4,
        "attr_c": "ddd",
        "attr_d": 4.44,
        "attr_e": "hoge",
    }
)
con.insert_many(
    table_name,
    insert_record_list=[
        {
            "attr_a": 5,
            "attr_b": 5.5,
            "attr_c": "eee",
            "attr_d": 5.55,
            "attr_e": "foo",
        },
        {
            "attr_a": 6,
            "attr_c": "fff",
        },
    ]
)

result = con.select(select="*", table_name=table_name)
for record in result.fetchall():
    six.print_(record)
(1, 1.1, u'aaa', 1, 1)
(4, 4.4, u'ddd', 4.44, u'hoge')
(5, 5.5, u'eee', 5.55, u'foo')
(6, u'NULL', u'fff', u'NULL', u'NULL')

Insert list/tuple/namedtuple

from collections import namedtuple
from simplesqlite import SimpleSQLite
import six

table_name = "sample_table"
con = SimpleSQLite("sample.sqlite", "w")
con.create_table_with_data(
    table_name,
    attribute_name_list=["attr_a", "attr_b", "attr_c", "attr_d", "attr_e"],
    data_matrix=[[1, 1.1, "aaa", 1,   1]])

SampleTuple = namedtuple(
    "SampleTuple", "attr_a attr_b attr_c attr_d attr_e")

con.insert(table_name, insert_record=[7, 7.7, "fff", 7.77, "bar"])
con.insert_many(
    table_name,
    insert_record_list=[
        (8, 8.8, "ggg", 8.88, "foobar"),
        SampleTuple(9, 9.9, "ggg", 9.99, "hogehoge"),
    ]
)

result = con.select(select="*", table_name=table_name)
for record in result.fetchall():
    six.print_(record)
(1, 1.1, u'aaa', 1, 1)
(7, 7.7, u'fff', 7.77, u'bar')
(8, 8.8, u'ggg', 8.88, u'foobar')
(9, 9.9, u'ggg', 9.99, u'hogehoge')

For more information

More examples are available at http://simplesqlite.readthedocs.org/en/latest/pages/examples/index.html

Installation

pip install SimpleSQLite

Dependencies

Python 2.6+ or 3.3+

Test dependencies

Documentation

http://simplesqlite.readthedocs.org/en/latest/

Project details


Release history Release notifications | RSS feed

This version

0.3.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SimpleSQLite-0.3.6.tar.gz (43.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

SimpleSQLite-0.3.6-py2.py3-none-any.whl (29.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file SimpleSQLite-0.3.6.tar.gz.

File metadata

  • Download URL: SimpleSQLite-0.3.6.tar.gz
  • Upload date:
  • Size: 43.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for SimpleSQLite-0.3.6.tar.gz
Algorithm Hash digest
SHA256 1572179561c560a4fd032eea9f2d3e448a85470f29f928fd1294f5520cc54551
MD5 5e34bd11467c855ccd98815902d4e25d
BLAKE2b-256 f757db11cdcffa8c1893413b0106c451d36eafe4c986f90351b7320d70911fb5

See more details on using hashes here.

File details

Details for the file SimpleSQLite-0.3.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for SimpleSQLite-0.3.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0025f68cac41a5121a4920bb37b8ae6c3ee56cfb4541631b9d532611a3b92ce0
MD5 9d1e546f203120e6896bb7c7e6eb4b5a
BLAKE2b-256 eedd31758b7f6e4378397ff44d29ef9a20c8710d2ea1a8a8be00d0a442b530c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page