11. food_query.py python数据库查询
来源:互联网 发布:下载免费炒股软件 编辑:程序博客网 时间:2024/06/05 06:28
import sqlite3,sys
#建立数据库的连接及其游标
conn = sqlite3.connect('food.db')
curs = conn.cursor()
#查询
query = 'SELECT * FROM food WHERE %s' % 'kcal <=100 AND fiber >= 10 ORDER BY sugar'
print query
curs.execute(query)
names = [f[0] for f in curs.description]
for row in curs.fetchall():
for pair in zip(names, row):
print '%s: %s' % pair
对于这个程序,我有几个问题
1. 原程序query = 'SELECT * FROM food WHERE %s' % 'kcal <=100 AND fiber >= 10 ORDER BY sugar'这行写的是query = 'SELECT * FROM food WHERE %s' % sys.argv[1],我最开始直接run程序,就出现了indexerror: list index out of range。出现这个的问题在于sys.argv[1]没有赋值。
语句$ python food_query 'kcal <=100 AND fiber >= 10 ORDER BY sugar',给sys.argv[1]赋值为'kcal <=100 AND fiber >= 10 ORDER BY sugar'。这样赋值的目的是为了便于修改查询条件,不用每次修改条件都要重写py文档,只需要在执行py的时候赋相应的值。但是$ python貌似是cmd命令啊,在python shell中无法执行。所以我只好把sys.argv[1]直接在py文档中修改成它将要赋的值:'kcal <=100 AND fiber >= 10 ORDER BY sugar'。
python传递参数只能用命令行么?求解。要想在shell里面直接传参数要怎么做?
解答: python 要给argv传递参数貌似还真只能用cmd命令行;上面那张图出现问题的原因在于python文件中字符串用单引号,但是命令行中是要用双引号的,改成双引号上述问题就解决了。
2. names = [f[0] for f in curs.description] 这句,打印出来的names显示为['id', 'desc', 'water', 'kcal', 'protein', 'fat', 'ash', 'carbs', 'fiber', 'sugar']
而curs.description打印显示为
('id', None, None, None, None, None, None)
('desc', None, None, None, None, None, None)
('water', None, None, None, None, None, None)
('kcal', None, None, None, None, None, None)
('protein', None, None, None, None, None, None)
('fat', None, None, None, None, None, None)
('ash', None, None, None, None, None, None)
('carbs', None, None, None, None, None, None)
('fiber', None, None, None, None, None, None)
('sugar', None, None, None, None, None, None)
为什么会是这样?
3. for row in curs.fetchall(): 这句。curs游标fetch到的row为什么不带id, desc, water这些指标,只有纯数字?
- 11. food_query.py python数据库查询
- python django 数据库查询
- python django 数据库查询
- python查询sqlite数据库
- python django 数据库查询
- python django 数据库查询
- python Django 数据库查询
- python django 数据库查询
- Python连接数据库查询
- python查询数据库内容
- Python数据库查询
- <PY><core python programming笔记>C21 数据库编程
- python jdango 数据库查询总结
- python查询数据库结果返回
- python调用数据库并查询
- python_慕课\Python操作MySQL数据库\2-2 Python-游标对象cursor.py
- web.py数据库入门
- web.py数据库入门
- 看了周忆博客之后的感想
- 乱码注意事项
- 和为S的连续正数序列
- BASE64Decoder小解
- 和为s的两个数字
- 11. food_query.py python数据库查询
- python学习日记_第三天(ex6~8)
- glog的使用
- SpringMVC中的HTTP跳转
- TextView属性
- php文件上传
- 翻转单词顺序列
- CodeForces 377C/378E Captains Mode 状态压缩动态规划
- 取消图片渲染