【python】sqlite使用
官方文档:https://docs.python.org/2/library/sqlite3.html
sqlite教程:http://www.runoob.com/sqlite/sqlite-delete.html
安装:
linux系统一般自带sqlite不需安装。在终端输入sqlite3,出现如下提示则表示已经安装了sqlite
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
新建一个数据库:
如下,直接在命令行输入即可
sqlite3 test.db
注意,sqlite会在当前文件目录下生成test.db文件。比如在路径 /home/A/B下生成了test.db,如果想在/home/X/Y目录下使用该数据库,需要加上路径
sqlite3 /home/A/B/test.db
如果没有该文件,sqlite会生成对应文件。
在python中使用sqlite
需要import sqlite3模块,具体使用可以参见上面的链接。主要注意两点:
1.sqlite转义方法
在数据库操作中,经常会用到类似于 select * from ABC where XXX = '%s' % ("""a'bc"d""")的情况。此时%s对应的字符中的引号会导致错误,因此需要转义。一般数据库都会有自己的转义函数。像mysql就有MySQLdb.escape_string() 处理该问题。在sqlite中,用?匹配解决该问题。
即将待插入的值都用?占位,将数据用元组传入。
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print c.fetchone()
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
这样避免了引号问题,安全性更好。
2.获取表字段名称与表数据对应关系
在pymongo中,使用coll.find()查找信息得到的都是字典,比如{"a":1,"b":2,"c":3},我们很容易通过字典判断字段的取值情况。但是sqlite给出的结果是列表形式,如[1,2,3]并不给出对应的字段名,如果不清楚有哪些字段很难处理。
可以采用如下方法解决:
#coding=utf8
import sqlite3 conn = sqlite3.connect(dbpath)
cursor = self.conn.cursor() #获取字段名称
sql = 'pragma table_info(%s)' % tb_name
cursor.execute(sql)
parg = cursor.fetchall()
col_names = [p[1] for p in parg] #获取字段名称 #获取数据
sql = 'SELECT * FROM %s' % tb_name
for data in cursor.execute(sql):
record = dict(zip(col_names, data)) #将字段名称和数据映射为字典
【python】sqlite使用的更多相关文章
- python sqlite
1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ import sqlite3 2. 创建/打开数据库 ...
- python sqlite 插入的数据含有变量,结果不一致
def insert(): conn = sqlite3.connect("sqlite.db") print "open database passed" t ...
- python sqlite 查询表的字段名 列名
获得查询结果表的列名: [python] view plain copy print ? db = sqlite.connect('data.db') cur = db.cursor() cur ...
- python SQLite说一点点, python使用数据库需要注意的几点
SQLite是一种嵌入式数据库,它的数据库就是一个文件.由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成. Python就 ...
- python sqlite中通过字段名获取查询结果
在连sqlite数据库时,用fetchall()查询结果,是用row[0],row[1]这样的方式来打印每列的结果 但是我想用row[“字段名”]方式查询怎么办? import sqlite3 con ...
- python+Sqlite+Dataframe打造金融股票数据结构
5. 本地数据库 很简单的用本地Sqlite查找股票数据. DataSource类,返回的是Dataframe物件.这个Dataframe物件,在之后的业务,如计算股票指标,还需要特别处理. impo ...
- Python——SQLite
一.连接数据库 import sqlite3 conn = sqlite3.connect('数据库名.db') 二.插入 import sqlite3 conn = sqlite3.connect( ...
- [python]用Python进行SQLite数据库操作
用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ ]: u ...
- sqlite以及python的应用
有点乱,自己平时,遇到了就记下来,所以没整理. 数据库sqlite,以及Qt对数据库的操作 sql学习网址: sqlite官网:http://www.sqlite.org http://www.w3s ...
- 使用 Python 的 SQLite JSON1 和 FTS5 扩展
早在九月份,编程界出现一个名为 json1.c 的文件,此前这个文件一直在 SQLite 的库里面.还有,笔者也曾总结通过使用新的 json1 扩展来编译 pysqlite 的技巧.但现在随着 SQL ...
随机推荐
- HTML5 之Canvas绘制太阳系
<!DOCTYPE html> <html> <head> <title>HTML5_Canvas_SolarSystem</title> ...
- HDOJ 4751 Divide Groups
染色判断二分图+补图 比赛的时候题意居然是反的,看了半天样例都看不懂 .... Divide Groups Time Limit: 2000/1000 MS (Java/Others) Memo ...
- Ubuntu使用ApkTool进行APK反编译
1.Apktool下载 http://ibotpeaches.github.io/Apktool/ 下载最新版本Apktool_2.1.1.jar 2.新建一个apktool目录,将Apktool_2 ...
- W3Cschool菜鸟教程离线版下载链接
请在电脑上打开以下链接进行下载w3cschool 离线版(chm):http://pan.baidu.com/s/1bniwRCV(最新,2014年10月21日更新)w3cschool 离线版(htm ...
- 在linux终端执行clear或top命令时出现:'xterm' unknown terminal type的错误
例如: [root@localhost phpmyadmin]# clear 'xterm': unknown terminal type. 解决办法: 1.临时办法,下次启动失效,需要重新执行 ex ...
- JQuery实战手风琴-遁地龙卷风
(-1)写在前面 这个图片是我从网上下载的,向这位前辈致敬.图片资源在我的百度云盘里.http://pan.baidu.com/s/1nvfJHdZ 我用的是chrome49,JQuery3.0,案例 ...
- Method Swizzling和AOP(面向切面编程)实践
Method Swizzling和AOP(面向切面编程)实践 参考: http://www.cocoachina.com/ios/20150120/10959.html 上一篇介绍了 Objectiv ...
- leetcode 33. Search in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
- OOP感想
OOP是面向对象编程(Object Oriented Programming).集于一身,最终目的是各司其职,让每个职责的只关注自己那块,其他的不管丢给下一个人.比如说,一个页面,对于客户,只要能看到 ...
- C++基础知识(2)---函数
c++中的函数和C语言中的函数相比,增加了许多新的语法与功能.在这里总结一下c++中常用的引用函数,函数重载和内联函数. 1 引用参数 引用参数最常用的一个例子就是 交换 两个数,如下 void s ...