SimpleSQLite

Python 库
授权协议 MIT
开发语言 Python HTML/CSS
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 不详
投 递 者 巫马松
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

SimpleSQLite是一款用来简化SQLite数据库的表创建和数据插入的Python库。

特性:

  • Automatic table creation from data

  • Support various data type for insertion : dictionary, namedtuple, list and tuple

  • Create table from csv file

安装:

pip install SimpleSQLite

用法:

创建表

创建表的数据矩阵

from simplesqlite import SimpleSQLite

con = SimpleSQLite("sample.sqlite")

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 -----print(con.get_attribute_name_list("sample_table"))
result = con.select(select="*", table_name="sample_table")for record in result.fetchall():    print(record)# display data type for each column -----print(con.get_attribute_type_list(table_name="sample_table"))
['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')

从csv文件创建表

输入:sample_data.csv

"attr_a","attr_b","attr_c"
1,4,"a"
2,2.1,"bb"
3,120.9,"ccc"

插入记录

插入字典

from simplesqlite import SimpleSQLite

con = SimpleSQLite("sample.sqlite", "w")
con.create_table_with_data(    table_name="sample_table",    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="sample_table",    insert_record={        "attr_a": 4,        "attr_b": 4.4,        "attr_c": "ddd",        "attr_d": 4.44,        "attr_e": "hoge",
    }
)
con.insert_many(    table_name="sample_table",    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="sample_table")for record in result.fetchall():    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')

插入列表/元组/ namedtuple

from collections import namedtuplefrom simplesqlite import SimpleSQLite

con = SimpleSQLite("sample.sqlite", "w")
con.create_table_with_data(    table_name="sample_table",    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="sample_table",    insert_record=[7, 7.7, "fff", 7.77, "bar"])
con.insert_many(    table_name="sample_table",    insert_record_list=[
        (8, 8.8, "ggg", 8.88, "foobar"),
        SampleTuple(9, 9.9, "ggg", 9.99, "hogehoge"),
    ]
)

result = con.select(select="*", table_name="sample_table")for record in result.fetchall():    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')
  • //#import "/usr/include/sqlite3.h" //add this to your header of code   - (void) saveData  {     sqlite3_stmt *statement;      const char *dbpath = [databasePath UTF8String];                if (sqlite3

  • 之前的工作关系,需要在手机上支持中文和拼音搜索。由于手机上存储数据一般都是用 sqlite,所以是基于 sqlite3 fts5 来实现。这段时间再次入门 c++,所以想用 c++ 实现一下,一来用于练手,二来当时做的时候发现网络上这方面开源的实现不多,也造福下其他人。 背景 搜索现在几乎是每个 APP 必备的功能,用户已经习惯了搜索框搜一下,避免到处去找。搜索也是帮助用户查找旧信息,发现新功能的

  • 用户评论: [#1] CraquePipe [2011-09-16 05:54:12] The SQLite manual mentions that queries are done in a case-sensitive way, this means your query must be the correct case. It also mentions that using the "L

  • 首先引入我们的非常牛皮的jar~ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> 加一个非常牛皮的配置类 @Configuration public class QuartzConfig

 相关资料
  • 问题内容: 如何在Python3中将输入转义到MySQL数据库?我正在使用PyMySQL,并且工作正常,但是当我尝试执行以下操作时: 如果字符串具有或,则它将不起作用。我也尝试过: 问题在于该库(PyMySQL)使用了Python2.x的格式语法,该语法不再起作用。我也发现了这个可能的解决方案 在这里,但我不知道在何处添加此代码。这就是我得到的一切: 编辑:我解决了!在PyMySQL中,正确的方法

  • 问题内容: 我感到困惑的是,在同一SQL Server实例中使用跨数据库查询的优缺点是什么? 我能想到的一件事是性能问题(查询将很慢),如果是这种情况,该问题的解决方案是什么? 请重点说明解决方案的优点和缺点,以便我可以放心地在两个数据库上工作。 我有两个数据库db1 Companies / CRM和db2 Products / E-commerce 问题答案: 您可能遇到的问题与管理有关。请在此

  • 问题内容: 有多少个数据库系统使用JSON进行存储或传输?我知道: CouchDB MongoDB DBSlayer 我记得我在SO用户的个人资料中看到了另一个供应商。该系统使用的是所谓的二进制JSON,但我不记得该产品的名称。 最近,似乎越来越多的DB项目正在将JSON用于持久性存储。其中一些甚至将HTTP用作传输层。 问题答案: MongoDb是使用二进制JSON存储格式的一种。我不知道是否还

  • 问题内容: 我有一张桌子,大约有17个字段。我需要在此表中执行频繁的更新。但是问题是 每次我可能只更新几个字段 。在这种情况下,编写查询以进行更新的最佳方法是什么?我正在寻找一个选项,其中 值仅在不为null时才更新 。 例如,我在数据库Say A,B,C,D中有四个字段。用户更新say D的值。所有其他值保持不变。因此,我需要一个更新查询,该查询仅更新D的值,而其他值保持不变。因此,如果我将a,

  • 问题内容: 我有一个专栏 组 。 群组 具有存储在group_types中的不同类型(买方,卖方,裁判)。只有当该组是买方类型时,它才具有另一种(更专门)的类型,例如电气和机械类型。 我对如何将其存储在数据库中感到有些困惑。 有人可以建议我一个数据库结构吗? 谢谢 问题答案: 将您的存储为层次结构表(带有或模型): : 将选择中的所有买家。 : 将选择任何数据库中的所有买家。 如果您不需要层次结构

  • 问题内容: 我在同一服务器上的2个不同数据库中有2个相同的表。将数据从表复制到另一个表的最佳方法是什么? 问题答案: 使用: 存在是经过简化的,但是如果有主键/ auto_increment可以担心/等,那么您就省去了。

  • 问题内容: 我想通过注释@Query通过Jpa存储库进行Join查询。我有三个表。 本机查询是: 现在我有了Table Hibernate实体,所以我在ApplicationRepository中尝试过 日志说 意外的标记 有什么想法吗? 我的表实体 Application.java: Customer.java: User.java: 问题答案: 您不需要JPA中的ON子句,因为借助映射注释,J

  • 问题内容: 我创建了一个新的Rails项目,调用 然后当我在目录中运行 我收到关注错误 我见过其他人遇到此错误,但他们通常是linux用户,并且我正在运行Windows。我试图重新安装Rails(railsinstaller.org)和mysql 5.5。我既使用了32位版本,也使用了64位版本 问题答案: 这里似乎已经有几个问题。您尝试过他们的解决方案吗? 相关部分在这里: