import sqlite3 #导入模块

conn = sqlite3.connect('example.db')

C=conn.cursor()

#创建表

C.execute('''CREATE TABLE stocks(data text,trans text, symple text,qty real,price real)''')

#插入一条数据

C.execute('''INSERT INTO stocks VALUES('2006-10-01,'BUY','RHA',100,35.14)''')

#提交当前事务,保存数据

#关闭数据连接

conn.close()

#查询数据库

for row in c.execute('SELECT * FROM stocks OPRED BY price'):

print(row)#s数据库是列表类型,可进行迭代

import sqlite3

conn = sqlite3.connect(":memory:")

cur=conn.cursor()

cur.execute("CREATE TABLE people(name_last,age)")

who = "li"

age="20"

cur.execute("INSERT INTO people VALUES(?, ?)",(who, age))

cur.execute("SELECT * FROM people WHERE name_last=:who AND age=:age",{"who":who,"age":age})

print(cur.fetchone())

Cursor

#1利用数据库完成小写字母

import sqlite3

class IterChars:

def __init__(self):

self.count=ord('a')

def __iter__(self):

return self

def __next__(self):

if self.count>ord('z'):

raise StopIteration

self.count+=1

return(chr(self.count-1),)

conn = sqlite3.connect(":memory:")

cur=conn.cursor()

cur.execute("CREATE TABLE characters(c)")

theIter=IterChars()

cur.executemany("INSERT INTO characters(c) VALUES(?)",theIter)

cur.execute("SELECT c FROM characters")

print(cur.fetchall())

#2利用yield完成对小写字母的创建

import sqlite3

import string

def char_gernerator():

for c in string.ascii_lowercase:

yield(c,)

conn = sqlite3.connect(":memory:")

cur=conn.cursor()

cur.execute("CREATE TABLE characters(c)")

#theIter=IterChars()

cur.executemany("INSERT INTO characters(c) VALUES(?)",char_gernerator())

cur.execute("SELECT c FROM characters")

print(cur.fetchall())

python的sqlite坑

#bug1表不存在

import sqlite3

conn=sqlite3.connect("D:/addressbook.db")

cur = conn.cursor()

cur.execute('''INSERT INTO addresslist(name,sex,phone,qq,address)VALUES('小王','女','18337257400','18674529','beijing')''')

cur.execute('''INSERT INTO addresslist(name,sex,phone,qq,address)VALUES('小李','女','18337257401','18674528','nanjing')''')

cur.execute('''INSERT INTO addresslist(name,sex,phone,qq,address)VALUES('小l','女','18337257403','18674525','tianjin')''')

conn.commit()

conn.close()

程序执行,我在心里想着这么low的代码应该没问题的,结果竟然报错了,fuck,表不存在什么鬼,于是百度,发现好多都是废话,好吧,不需要了,我在脑中想了会,既然不存在,那我就创建

#修改后

import sqlite3

conn=sqlite3.connect("D:/addressbook.db")

cur = conn.cursor()

cur.execute('''CREATE TABLE addresslist(name text,sex text,phone real,qq real,address text)''')

cur.execute('''INSERT INTO addresslist(name,sex,phone,qq,address)VALUES('小王','女','18337257400','18674529','beijing')''')

cur.execute('''INSERT INTO addresslist(name,sex,phone,qq,address)VALUES('小李','女','18337257401','18674528','nanjing')''')

cur.execute('''INSERT INTO addresslist(name,sex,phone,qq,address)VALUES('小l','女','18337257403','18674525','tianjin')''')

conn.commit()

conn.close()

程序bug完美解决

下面进行遍历查找

import sqlite3

conn=sqlite3.connect("D:/addressbook.db")

cur=conn.cursor()

cur.execute('SELECT * FROM addresslist')

li = cur.fetchall()

for line in li:

for item in line:

print(item,end=' ')

print()

conn.close()

好了,终于完美解决。

#sqllite之row

import sqlite3

conn=sqlite3.connect(":memory:")

c=conn.cursor()

#创建表

c.execute('''CREATE TABLE stocks(data text,trans text,symple text,qty real,price real)''')

c.execute("""INSERT INTO stocks VALUES ('2006-10-01','BUY','RHA',100,35.14)""")

conn.commit()

c.close()

conn.row_factory=sqlite3.Row

c=conn.cursor()

c.execute('SELECT * FROM stocks')

r=c.fetchone()

print(type(r))

print(tuple(r))

print(r[2])

print(r.keys())

print(r['qty'])

for field in r:

print(field)

python中sqlite问题和坑的更多相关文章

  1. python中remove函数的坑

    摘要:对于python中的remove()函数,官方文档的解释是:Remove first occurrence of value.大意也就是移除列表中等于指定值的第一个匹配的元素. 常见用法: a ...

  2. python中remove的一些坑

    前几天,使用python时遇到这么一个需求,删除一个列表中值为1的元素.我寻思着使用remove方法,但是remove方法只会删除第一个,于是我使用for循环去删除.代码和运行结果如下: 当时这个结果 ...

  3. python中 __file__的小坑坑

    在python脚本中,我们难免会需要用到自身文件所在的绝对路径,第一想法可能就是用os.path.dirname(__file__) 但是这里有个大坑,我就踩了,这种方式得到路径会出现问题,脚本执行报 ...

  4. ~~在python中踩过的坑以及问题~~(不断更新)

    python说简单也不难,但是在这其中大大小小的点 真的是有够折磨人欸!  1.   input 输入的时候,即使输入的是数字,数据类型也是字符串   2.   字符串本质上来看可以看作有序数组  3 ...

  5. Python中Json解析的坑

    JSON虽好,一点点不对,能把人折腾死: 1.变量必须要用双引号 2.如果是字符串,必须要用引号包起来 Error:Expecting : delimiter: line 1 column 6 (ch ...

  6. python中 遇到的读取坑2.7和3.6版本的问题

    2.7读取,需要使用io.open 3.x使用open 使用io.open的时候路径需要使用\\ 目前io.open的文件名不能为中文

  7. 细数Python Flask微信公众号开发中遇到的那些坑

    最近两三个月的时间,断断续续边学边做完成了一个微信公众号页面的开发工作.这是一个快递系统,主要功能有用户管理.寄收件地址管理.用户下单,订单管理,订单查询及一些宣传页面等.本文主要细数下开发过程中遇到 ...

  8. python中的这些坑,早看早避免。

    python中的这些坑,早看早避免. 说一说python中遇到的坑,躲坑看这一篇就够了 传递参数时候不要使用列表 def foo(num,age=[]): age.append(num) print( ...

  9. python中round(四舍五入)的坑

    python中的round函数不能直接拿来四舍五入,一种替代方式是使用Decimal.quantize()函数. 具体内容待补. >>> round(2.675, 2) 2.67 可 ...

随机推荐

  1. 【supervisor】监控服务

    写了一个ftp服务,用supervisor监控一下 1.先写一个配置文件,路径和名称为/etc/supervisord.conf.d/ftp-server.ini [program:ftp-serve ...

  2. 异常小结:上一张图搞清楚Java的异常机制

    下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的. Throwable Throwable是Java异常的顶级类,所有的异常都继承于这个类. Error,Excepti ...

  3. fastJson常用方法总结

    1.了解json json就是一串字符串 只不过元素会使用特定的符号标注. {} 双括号表示对象 [] 中括号表示数组 "" 双引号内是属性或值 : 冒号表示后者是前者的值(这个值 ...

  4. css 清除浮动的几种方式

    1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...

  5. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)

    在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务 ...

  6. Reactnative——安装React Navigation后无法运行项目

    运行 npm install --save react-navigation 后,运行 react-native run-android 报 解决方法: 1.react-native init Nav ...

  7. 从零开始学C#——不再更新,直接进入高阶教程

    从零开始学习C#不再更新,直接进入高阶教程. 入门教程,请自行谷歌.百度吧,有很多这样的教程. 编程是一件实践性很强的事情,那么接下来的文章将开始进行开发项目. 还在编程中迷茫的人们,先暂时放下一切的 ...

  8. Description Resource Path Location Type Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix. spark-MT line 1 Maven Co

    1.相信大家新建的maven项目,然后添加好依赖(即修改了pom.xml文件以后就会出现如下所示的错误): Description Resource Path Location Type Projec ...

  9. Not running in a hosted service or the Development Fabric

    今天尝试在azure上发布网站后,无法正常访问 本地调试也提示: Not running in a hosted service or the Development Fabric 谷歌百度半天… 最 ...

  10. CDOJ 1965 连通域统计【DFS】

    求连通域个数,简单题 #include <bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; typedef l ...