import sqlite3,sys
def convert(value):
if value.startswith('~'):
return value.strip('~')
if not value:
value=''
return float(value)
conn=sqlite3.connect('food.db')
curs=conn.cursor()
curs.execute('''
CREATE TABLE IF NOT EXISTS food(
id TEXT PRIMARY KEY,
desc TEXT,
water FLOAT,
fat FLOAT,
fiber FLOAT,
sugar FLOAT
)
''')
insert_query='INSERT INTO food VALUES(?,?,?,?,?,?)'
for line in open('ABBREV.txt'):
fields=line.split('^')
field_count=len(fields)
print(fields)
vals=[convert(f) for f in fields[:field_count]]
curs.execute(insert_query,vals)
conn.commit() select_all='SELECT * FROM food'
curs.execute(select_all)
print(curs.fetchall()) select_str='fat<=100 AND fiber>=10 AND sugar ORDER BY sugar'
try:
if sys.argv[1]: select_str=sys.argv[1]
print('\n',sys.argv,'\n')
except: pass
#命令行调用,windows下SQL.py要加引号
#python SQL.py 'fat<=100 AND fiber>=10 AND sugar ORDER BY sugar'
print(select_str)
select_query='SELECT * FROM food WHERE %s' % select_str
curs.execute(select_query)
names=[f[0] for f in curs.description]
name=[f for f in curs.description]
print(name)
for row in curs.fetchall():
for pair in zip(names,row):
print('%s:%s' % pair)
conn.close()

SQL.py的更多相关文章

  1. django 1.7+ default_permissions

    由于做Caption要做权限设计.在核心类的设计的时候需要做好权限的基础设计.django 1.7+以后 django.db.modes新增特性 default_permissions,官方文档语焉不 ...

  2. Openstack的mysql数据多主galera的错误

    登录openstack的在dashboard,提示说权限验证错误,有2种情况: 1. 密码被人改了. 2. 系统发生了问题. 密码确认没人改,所以查看/var/log/keystone-all.log ...

  3. Oracle表结构转换SqlSERVER表结构 脚本

    在审计工作中,有时需要将Oracle的表结构修改后再SqlSERVER中创建表结构,然后将数据导入到SqlSERVER中,在修改表结构的过程中方法狠多.手工修改,最蠢的方法,或者用工具UE批量修改,还 ...

  4. 通过读取excel数据和mysql数据库数据做对比(二)-代码编写测试

    通过上一步,环境已搭建好了. 下面开始实战, 首先,编写链接mysql的函数conn_sql.py import pymysql def sql_conn(u,pwd,h,db): conn=pymy ...

  5. pyspark简要原则

    概要 这是一个看前一段时间spark的python支持的时,有点简单的后pyspark内python代码,我们把一个一般流程.虽然几乎没有python,但基本上能看懂pyspark它是如何使不同的虚拟 ...

  6. python pandas dataframe to_sql方法error及其解决

    今天遇到了一个问题,很是奇怪,自己也想了一个另类的方法将其解决了,现在将详细过程经过记录如下: 我在处理完一个dataframe之后,需要将其写回到数据库.这个dataframe比较大,共有53列,7 ...

  7. ubuntu环境配置eclipse+opencv

    blockquote { direction: ltr; color: rgb(0, 0, 0) } blockquote.western { font-family: "Liberatio ...

  8. 利用layui前端框架实现对不同文件夹的多文件上传

    利用layui前端框架实现对不同文件夹的多文件上传 问题场景: 普通的input标签实现多文件上传时,只能对同一个文件夹下的多个文件进行上传,如果要同时上传两个或多个文件夹下的文件,是无法实现的.这篇 ...

  9. flask保存 文件到本地

    本篇队长介绍一下如何 把前端上传的文件保存 到 后端flask项目目录 首先讲一下上传.保存文件的思路: 第一步:前端通过post请求方式提交上传的文件 <input id="file ...

随机推荐

  1. javascript 判断字符串是否包换字符串

    用"ghiahgiahgia".indexOf("hg"); 返回值>=0为包含,否则就是-1(不包含)

  2. sql语言复习2

    一.查询 select 字段列表 from 表名列表 [where 条件表达式][group by 字段列表[having 条件表达式]] [order by 字段列表[asc|desc]] 含义:在 ...

  3. .net 4.0 网站发布(转)

    http://www.cnblogs.com/daomul/archive/2013/05/23/3095232.html 1. 进入解决方案的web项目下,右击项目选择 "发布(B)&qu ...

  4. DataTable和DataRow利用反射直接转换为Model对象的扩展方法类

    DataTable和DataRow利用反射直接转换为Model对象的扩展方法类   /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为 ...

  5. 储存技术(SLC、MLC、TLC和QLC的NAND闪存技术)和Optane Memory

    1.转载:Optane Memory 2.构成SSD的主要IC有主控芯片和NAND闪存,SLC.MLC和TLC三者都是闪存的类型 需要说明的闪存的寿命指的是写入(擦写)的次数,不是读出的次数,因为读取 ...

  6. OI知识体系

  7. Kubernetes对象之Pod

    系列目录 Pod是Kubernetes调度的最小单元.一个Pod可以包含一个或多个容器,因此它可以被看作是内部容器的逻辑宿主机.Pod的设计理念是为了支持多个容器在一个Pod中共享网络和文件系统 因此 ...

  8. java线程中断[interrupt()函数] (转载)

    一个正常的线程中断: 从运行到真正的结束,应该有三个阶段: 正常运行. 处理结束前的工作,也就是准备结束. 结束退出. Java曾经提供过抢占式限制中断,但问题多多,例如的Thread.stop.另一 ...

  9. 防止ViewPager中的Fragment被销毁

    pager.setOffscreenPageLimit(2); 就可以让ViewPager多缓存一个页面

  10. android android:duplicateParentState=&quot;true&quot; &quot;false&quot;

    今天要做一个效果.组件RelativeLayout上有两个TextView.这两个TextView具有不同的颜色值,如今要的效果是,当RelativeLayout被点击时,整个item有高亮背景. 同 ...