索引器错误引用第一个ch时字符串索引超出范围

2024-09-29 21:43:24 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我的代码(当前):

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()

它在注释行返回此错误,以指示错误所在:

^{pr2}$

所有的号码都有值,但是如果电话号码以1开头,我想在将其插入数据库之前删除1。为什么这行不通?在尝试引用第一个字符之前,我已经将它转换为一个字符串,所以我不明白为什么这不起作用。在


Tags: 代码textnamenumberclosedbconnect错误
1条回答
网友
1楼 · 发布于 2024-09-29 21:43:24

好像你得到了一个空字符串。尝试用下面的语句替换if语句,看看它是否有效。在

if str(Number).startswith('1'):

(经过编辑以反映@kindall建议使用startswith而不是切片{})。在

相关问题 更多 >

    热门问题