Python基础教程代码清单13-1的问题报错求解

代码如下:
import sqlite3
def convert(value):
if value.startswitch('~'):
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,
kacl FLOAT,
protein FLOAT,
fat FLOAT,
ash FLOAT,
carbs FLOAT,
fiber FLOAT,
sugar FLOAT
)
''')

query = 'INSERT INFO FOOD VALUES(?.?.?.?.?.?.?.?.?.?)'

field_count =10
for line in open('/Users/mingleung/pyprograms/ADD_ABBR.txt'):
fields = line.split('^')
vals = [convert(f) for f in fields[:field_count]]
curs.execute(query, vals)

conn.commit()
conn.close()

错误如下:
Traceback (most recent call last):
File "/Users/mingleung/pyprograms/importtdata.py", line 33, in <module>
vals = [convert(value) for value in fields[:field_count]]
File "/Users/mingleung/pyprograms/importtdata.py", line 33, in <listcomp>
vals = [convert(value) for value in fields[:field_count]]
File "/Users/mingleung/pyprograms/importtdata.py", line 3, in convert
if value.startswitch('~'):
AttributeError: 'str' object has no attribute 'startswitch'
str对象没有startswitch属性?是这个意思?代码要怎么样改?谢谢!

第1个回答  2017-07-19
我刚刚也看到这儿,不过我的错误是因为书中field_count没有定义,参考了你的代码之后定义了field_count,这样错误就没有了。
我也顺便看了下你的,你的错误提示是这样的AttributeError: 'str' object has no attribute 'startswitch',错误的原因在于你把startswith拼写错了,你写的是startswitch(你多写了一个c),更正拼写就可以了。
相似回答