跟踪列表索引必须是

2024-04-26 07:50:48 发布

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

好的,我正试图在追踪器中获取人员和时间戳,但我不断得到以下错误:

list indices must be integer, not str

这是获取该错误的代码:

elif used_prefix and cmd == "tracker" and self.getAccess(user) >= 1:
   try:
     if len(args) == 0:
        name = user.name.lower()
    elif len(args) > 0:
        name = args.lower()
    f = urlreq.urlopen("http://chtracker.info/index.py?output=json&x=page&y={}".format(name))
    data = json.loads(f.readall().decode("utf-8"))['viewer'][:10]
    t = "{}, the last 10 people who visited {}'s profile are: ".format(name.title(), name.title())
    viewers = [(item['viewer'], item['timestamp']) for item in data]
    for l in viewers:
       viewer, timest = l
       t += "{} about {} ago".format(viewer, stamp.getTimeStamp((timest)))
   room.message(t, True)
except:
   print(traceback.format_exc())
   room.message((str(sys.exc_info()[1])))

错误发生在此行:

data = json.loads(f.readall().decode('utf-8'))['viewer'][:10]

url中有具有相同标记“viewer”和“timestamp”的字典,例如:

http://chtracker.info/index.py?output=json&x=page&y=mechabot

Tags: andnameinfojsonformatdatalen错误
1条回答
网友
1楼 · 发布于 2024-04-26 07:50:48

json.loads(...)返回一个list,所以当您这样做时:

json.loads(...)['viewer']

您试图访问索引为'viewer'list无效。你知道吗

您可以通过打印json.loads(f.readall().decode("utf-8"))来实现这一点,从而找出访问其值的正确方法。你知道吗

相关问题 更多 >