import sqlite3
def convert(value):
if value.startswith('~'):
return value.strip('~')
if not value:
value='0'
return float(value)
conn=sqlite3.connect('food.db')
curs=conn.cursor()
curs.execute('''
CREATE TABLE food(
id TEXT PRIMARY KEY,
desc TEXT,
water FLOAT,
kcal FLOAT,
protein FLOAT,
fat FLOAT,
ash FLOAT,
carbs FLOAT,
fiber FLOAT,
sugar FLOAT
)
''')
query='INSERT INTO food VALUES(?,?,?,?,?,?,?,?,?,?)'
field_count = 10
for line in open('ABBREV.txt'):
fields=line.split('^')
vals=[convert(f) for f in fields[:field_count]]
curs.execute(query,vals)
conn.commit()
conn.close()
之后是下面的数据库查询程序
import sqlite3,sys
conn = sqlite3.connect('food.db')
curs = conn.cursor()
query = 'SELECT*FROM food WHERE'+ sys.argv[1]
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('{}:{}'.format(*pair))
print()
之后显示
Traceback (most recent call last):
File "C:/Users/Administrator/AppData/Local/Programs/Python/Python38/123.py", line 6, in
query = 'SELECT*FROM food WHERE'+ sys.argv[1]
IndexError: list index out of range
这是出了什么问题?求告知