如何修复Python的vk_api中的“'int'对象不可下标”错误

时间:2019-10-12 13:06:39

标签: python api vk

我不知道如何解决以下错误:

   first_name = opread["profiles"][i]["first_name"]
TypeError: 'int' object is not subscriptable

为您提供一些背景信息,这是我的代码:

opread = vk.method("messages.getConversationMembers",{"peer_id":id})
count = opread["count"]
for i in range(count):
    first_name = opread["profiles"][i]["first_name"]
    last_name = opread["profiles"][i]["last_name"]
    peer_id = opread["profiles"][i]["id"]

1 个答案:

答案 0 :(得分:0)

如果 VK 发送重复的个人资料(如您在评论中所述),则可能会发生这种情况。在任何情况下,如果您在配置文件列表而不是计数变量上运行范围函数,您将获得最佳结果:

opread = vk.method("messages.getConversationMembers",{"peer_id":id})
for i in range(len(opread["profiles"])):
    first_name = opread["profiles"][i]["first_name"]
    last_name = opread["profiles"][i]["last_name"]
    peer_id = opread["profiles"][i]["id"]

如果您不需要持有对索引的引用,您甚至可以这样做:

opread = vk.method("messages.getConversationMembers",{"peer_id":id})
for i in opread["profiles"]:
    first_name = i["first_name"]
    last_name = i["last_name"]
    peer_id = i["id"]