数值错误:太多值无法解除

2024-06-02 05:14:06 发布

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

我正在尝试在MongoDB中对字典进行分类。但是,我得到了值错误“too many values to unpack”,因为我认为这意味着每个字典中有太多的值(每个字典中有16个值)。这是我的代码:

FortyMinute.find().sort(['Rank', 1])

有人知道怎么避开这个吗?在

编辑:完全回溯

^{pr2}$

Tags: to代码字典mongodb错误分类findsort
2条回答

unpacked中传递参数和值,如下所示:

FortyMinute.find().sort('Rank', 1)


只有在传递多个排序参数时,才能使用列表对参数和值进行分组,然后还必须用元组将所有参数括起来,如下所示: ^{pr2}$


专业提示:即使下面链接的Cursor.sort文档也建议使用pymongo.DESCENDING和{},而不是1和-1;通常,您应该在代码中使用描述性变量名而不是神奇常量:
FortyMinute.find().sort('Rank',pymongo.DESCENDING)


最后,如果您愿意,您可以使用Python的内置程序对列表进行排序,正如前面提到的另一个答案;但是即使认为sorted接受迭代器而不仅仅是序列,它可能更低效和不标准:
sorted(FortyMinute.find(), key=key_function)

其中可以定义key_function以返回记录的Rank列。在


Link to the official documentation

如果希望mong/pymongo进行排序:

FortyMinute.find().sort('Rank', 1)

如果要使用多个字段排序:

^{pr2}$

您还可以使用常量来更清楚地说明您在做什么:

FortyMinute.find().sort('Rank',pymongo.DESCENDING)

如果要先在python中排序,则必须返回结果并使用python中的排序方法:

sorted(FortyMinute.find(), key=<some key...>)

相关问题 更多 >