问题描述
- 初学者python 'str' object has no attribute 'vals' 怎么解决啊
-
代码如下
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()try:
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
)
''')
except:
passquery = 'INSERT INTO food VALUES (?,?,?,?,?,?,?,?,?,?)'
for line in open('ABBREV.txt'):
fields=line.split('^')
vals = [convert(f) for f in fields[:10]]
curs.execute(query. vals)conn.commit()
conn.close()错误代码 AttributeError: 'str' object has no attribute 'vals' 怎么办啊
解决方案
curs.execute(query. vals) ???
这是要干啥?
query是一个字符串,vals上面算出来的列表
如果是想把vals追加到query后面,
query + ','.join(vals)
解决方案二:
把value与startswith中间的" . "改为 " , "