为什么我收到此错误IndexError:元组索引超出范围

时间:2015-04-10 16:22:07

标签: python database sqlite kml

我试图从数据库中提取行。它会拉出前两行,但不会拉出第6行和第7行,而且它会说这个错误:tuple index out of range

db = sqlite3.connect('da_destination_history')
cursor = db.cursor()
cursor.execute('''SELECT time, dest_lat, dest_lng, source_lat, source_lng FROM destination_history''')
rows = cursor.fetchall()

for row in rows:
    print('{0} : {1}, {2}'.format(row[0], float(row[1])/1000000, float(row[2])/1000000))
    print('{0} : {6}, {7}'.format(row[0], float(row[6])/1000000, float(row[7])/1000000))
    ttime = row[0]
    dlong = float(row[1])/1000000
    dlat = float(row[2])/1000000

kml = simplekml.Kml()
kml.newpoint(name="andriod2", coords=[((float(row[2])/1000000),(float(row[1])/1000000))])
kml.newpoint(name="andriod", coords=[((float(row[7])/1000000),(float(row[6])/1000000))])
kml.save("andriod.kml")

1 个答案:

答案 0 :(得分:0)

由于Martijn表示row[6]的索引看起来很可疑,因为您只选择了5列。

字符串上的format函数也存在问题:

'{0} : {6}, {7}'.format(row[0], float(row[6])/1000000, float(row[7])/1000000)

67之间的{}表示format()的参数,并且您只提供3个参数(使用{0}索引,{1}分别为{2}

如果您从选择了更多列的某个示例中复制此代码,则应确保更新所有索引,包括行和格式说明。