这是我的代码(当前):
conn = sqlite3.connect(db)
conn.text_factory = str #bugger 8-bit bytestrings
cur = conn.cursor()
reader = csv.reader(open(csvfile, "rU"), delimiter = '\t')
for Number, Name, Message, Datetime, Type in reader:
# populate subscriber table
if str(Number)[0] == '1': # errors on this line
tmpNumber = str(Number)[1:]
Number = int(tmpNumber)
cur.execute('INSERT OR IGNORE INTO subscriber (name, phone_number) VALUES (?,?)', (Name, Number))
cur.close()
conn.close()
它在注释的行上返回此错误以指示错误所在的位置:
IndexError: string index out of range
所有数字都有值,但如果电话号码以 1 开头,我想在将其插入数据库之前删除 1。为什么这行不通?在尝试引用第一个字符之前,我已将其转换为字符串,所以我不明白为什么这不起作用。