これが私のコードです(現在):
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 を削除したいと考えています。なぜこれがうまくいかないのですか?最初の文字を参照しようとする前に文字列に変換したので、これが機能しない理由がわかりません。