Python中的范围错误的元组索引输出

时间:2016-04-23 08:46:53

标签: python

import MySQLdb as mdb
import math
import sys
from decimal import Decimal

conn=mdb.connect('localhost','root','','testdb')
c=conn.cursor()

user_id=str(sys.argv[1])
lati=str(sys.argv[2])
longi=str(sys.argv[3])
radius=int(str(sys.argv[4]))



c.execute("Select user_id from users")
userids=c.fetchall()

c.execute("Select lati, longi from userloc")
locations=c.fetchall()

c.execute("Select i1,i2,i3,i4,i5 from userint")
interests=c.fetchall()

c.execute("Select organization,job_profile from userprof")
profiles=c.fetchall()

c.execute("Select i1,i2,i3,i4,i5 from userint where user_id=%s"%user_id)
recc_user_int=c.fetchall()

c.execute("Select organization,job_profile from userprof where             user_id=%s"%user_id)
recc_user_prof=c.fetchall()

temp=""

affinity_score=0.0
alpha=0.0
beta=0.0
gamma=0.0

size=len(locations)

outp=""
j=0
while j<size:
userb=int(userids[j][0])
if(user_id != userb):
    #print(j)
    lat1=float(locations[j][0])
    long1=float(locations[j][1])
    if(float(lati)>lat1):
        dlat = float(float(lati) - lat1)
    else:
        dlat = float(lat1 - float(lati))
    if(float(longi)>long1):
        dlon = float(float(longi) - long1)

获得以下错误: 文件“C:\ Python27 \ recommended.py”,第50行,in 用户B = INT(用户ID [j]的[0]) IndexError:元组索引超出范围

请帮忙。它工作正常,突然错误发生在今天早上,脚本无法运行

1 个答案:

答案 0 :(得分:0)

userb=int(userids[j][0]) 

导致问题。

并解决问题.....看看有什么错误说。 &#34;指数超出范围&#34;意味着你正试图访问不存在的元素(元组),比如 您想要访问第三个元素,但元组只有两个元素

因此,当您使用&#34; userids&#34;时,错误就会出现在代码中的某处。元组

如果元组在某一天可能是不同的,那么第二天它就是空的(例如,当你从服务器或类似的东西那里得到信息时)你应该用&#34;尝试除了&#34;阻止或在使用元组之前识别其大小

编辑: 并且它给了你错误b,因为数据库中没有任何用户ID,但是在添加它们之后它工作正常。