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:元组索引超出范围
请帮忙。它工作正常,突然错误发生在今天早上,脚本无法运行
答案 0 :(得分:0)
userb=int(userids[j][0])
导致问题。
并解决问题.....看看有什么错误说。 &#34;指数超出范围&#34;意味着你正试图访问不存在的元素(元组),比如 您想要访问第三个元素,但元组只有两个元素
因此,当您使用&#34; userids&#34;时,错误就会出现在代码中的某处。元组
如果元组在某一天可能是不同的,那么第二天它就是空的(例如,当你从服务器或类似的东西那里得到信息时)你应该用&#34;尝试除了&#34;阻止或在使用元组之前识别其大小
编辑: 并且它给了你错误b,因为数据库中没有任何用户ID,但是在添加它们之后它工作正常。