python-3.x - 使用 mongodb 在 python 上列出迭代
问题描述
我正在开发一个小型 python 项目,我需要在其中创建一个 mongodb 条目。
这是您从另一个集合收到的值列表:
["India", "Australia", "South Africa"]
所以上面的列表包含三个项目。我想要的下一个系列是:
{
"_id": ObjectId('some id'),
"name": "Player",
"value": "India"
}
{
"_id": ObjectId('some id'),
"name": "Player",
"value": "Australia"
}
{
"_id": ObjectId('some id'),
"name": "Player",
"value": "South Africa"
}
我只想将值列表添加到值键中,但名称应该是常量。它应该一次又一次地重复,但值键将根据列表中的数字条目进行更改。
如何在 python 中解决这个问题?
解决方案
您可以通过不同的方式解决此问题。一个非常基本的方法是使用这样的列表推导:
values_list = ["India", "Australia", "South Africa"]
names_list = ["Peter", "Paul", "Mary"]
def create_objects(name, values):
# this returns a list of dicts basically and should be adopted to create 'real' mongoDB objects/entries
return [{"_id": "some id", "name": name, "value": value} for value in values]
objects = [create_objects(name, values_list) for name in names_list]
print(objects)
另一种方法是预先计算所有可能的组合(在 itertools 中称为产品),以防止两个交互的 for 循环
from itertools import product
objects = [{"_id": "some id", "name": name, "value": value} for name, value in product(names_list, values_list)]
print(objects)
推荐阅读
- javascript - Getting sonarlint rule error: no magic number: 1.5. Added the code below
- neo4j - Patch user Neo4j / NestJs
- c++ - C++ constructors initialization order
- css - Custom Mailchimp Embedded Suscribe Form not working in Wordpress
- kubernetes - why does my Openldap container keeps crashing due to pod security policy
- flutter - 我想在他用谷歌登录到我的颤振应用程序后查看用户的 youtube 播放列表
- javascript - 组件抛出错误导致错误(TS2786)“类型‘未定义’不可分配给类型‘元素|空’”
- rust - 如果多个选项之一为无,则返回 Ok(None) 的惯用方法是什么,否则打开所有选项?
- typescript - 打字稿 - 记录
反对 - cmake - add_custom_command 的可选依赖项