List Python3获取列表项索引返回空错误

List Python3获取列表项索引返回空错误,list,python-3.x,indexing,List,Python 3.x,Indexing,代码: 我试图找出过去1小时的问题所在,但仍然找不到 我试图从列表中获取一个随机选择的索引,但每当我到达该部分时,程序就会以空错误退出 该部分: other_users=User.objects.filter(logged_in=False) for other_user in other_users: other_posts=Post.objects.filter(author=other_user)

代码:

我试图找出过去1小时的问题所在,但仍然找不到

我试图从列表中获取一个随机选择的索引,但每当我到达该部分时,程序就会以空错误退出

该部分:

            other_users=User.objects.filter(logged_in=False)

            for other_user in other_users:
                other_posts=Post.objects.filter(author=other_user)
                print('[!] Collecting other_posts from other_user => {} [{}] [!]'.format(other_user,other_posts))
                try:
                    for other_post in other_posts:
                        print('[=] other_post: {}'.format(other_post))
                        if other_post.likes==0:
                            print('[=] other_post with 0 likes: {}'.format(other_post))
                            for like in range(max_likes_per_user):
                                rand_post=random.choice(other_posts)
                                print('[+] Random post => {} : TYPE[{}]'.format(rand_post,type(rand_post)))
                                post_index=other_posts.index(rand_post)
                                print('[!] Post index: {}'.format(post_index))
                                other_posts.pop(post_index)
                                print('[+] Liking {} POST'.format(rand_post))
                                rand_post.likes+=1
                                rand_post.save()
                                print('[!] Saving like [!]')
                except Exception as e:
                    print('[-] Error: [-]\n\n'.format(e))
                    done=True
之后的任何内容都不会返回任何内容,并直接跳转到异常,然而,e变量总是空的,我不会得到错误输出

我想知道为什么post_索引变量没有得到任何数据,为什么它会跳到异常部分。代码中有什么不好的地方

以下是我得到的结果:

post_index=other_posts.index(rand_post)
print('[!] Post index: {}'.format(post_index))
[!]从其他用户收集其他帖子=>Robot Tyler 1[!]
[=]其他职位:机器人泰勒1-标题1
[=]其他0个喜欢的帖子:机器人泰勒1-标题1
[+]Random post=>Robot Tyler 1-标题4:TYPE[]
[-]错误:[-]
[!]从其他用户收集其他帖子=>Robot Tyler 2[!]
[=]其他职位:机器人泰勒2-标题1
[=]其他0个喜欢的帖子:机器人泰勒2-标题1
[+]Random post=>Robot Tyler 2-标题1:TYPE[]
[-]错误:[-]

任何人都可以告诉我错误在哪里?

出于某种原因,
其他帖子
变量是
QuerySet
,而不是列表。所以我所做的就是把它转换成一个
列表(其他帖子)
。如果任何人似乎理解其他帖子被称为
QuerySet
的原因,请在评论中解释

这就是代码现在的样子:

[!] Collecting other_posts from other_user => Robot Tyler 1 [<QuerySet [<Post: Robot Tyler 1 - Title 1>, <Post: Robot Tyler 1 - Title 2>, <Post: Robot Tyler 1 - Title 3>, <Post: Robot Tyler 1 - Title 4>]>] [!]
[=] other_post: Robot Tyler 1 - Title 1
[=] other_post with 0 likes: Robot Tyler 1 - Title 1
[+] Random post => Robot Tyler 1 - Title 4 : TYPE[<class 'person.models.Post'>]
[-] Error: [-]


[!] Collecting other_posts from other_user => Robot Tyler 2 [<QuerySet [<Post: Robot Tyler 2 - Title 1>, <Post: Robot Tyler 2 - Title 2>, <Post: Robot Tyler 2 - Title 3>]>] [!]
[=] other_post: Robot Tyler 2 - Title 1
[=] other_post with 0 likes: Robot Tyler 2 - Title 1
[+] Random post => Robot Tyler 2 - Title 1 : TYPE[<class 'person.models.Post'>]
[-] Error: [-]

这不是问问题的真正方式。。。问清楚代码的哪一部分有问题?你能发布错误的完整跟踪吗。如果您在exception print语句中添加了“{}”,或者干脆说-print(e),那么将有助于实际打印异常。我猜您的数据不支持对索引的引用。您可以删除隐藏错误的异常处理程序:这将显示回溯!!
other_users=User.objects.filter(logged_in=False)

for other_user in other_users:
    other_posts=Post.objects.filter(author=other_user)
    print('[!] Collecting other_posts from other_user => {} [{}] [!]'.format(other_user,other_posts))
    try:
        for other_post in other_posts:
            print('[=] other_post: {}'.format(other_post))
            if other_post.likes==0:
                print('[=] other_post with 0 likes: {}'.format(other_post))
                for like in range(max_likes_per_user):
                    rand_post=random.choice(other_posts)
                    print('[+] Random post => {} : TYPE[{}]'.format(rand_post,type(rand_post)))
                    post_index=list(other_posts).index(rand_post)
                    print('[!] Post index: {}'.format(post_index))
                    list(other_posts).pop(post_index)
                    print('[+] Liking {} POST'.format(rand_post))
                    rand_post.likes+=1
                    rand_post.save()
                    print('[!] Saving like [!]')
    except Exception as e:
        print(e)
        done=True