python - 在列表中附加不同的字典值

标签 python mongodb dictionary

我将字典列表存储在 mongodb 数据库中。

每小时我都会得到一个包含新字典值的列表,一些字典可能与之前插入的相同。

所以我只想在列表中插入不同的字典并在 mongo 中更新该列表。

插入 1

res = [{"a": 1},{"b": 2},{"c": 4},{"d": 5},{"e": 6}]

插入 2

res = [{"f": 7},{"b": 2},{"c": 4},{"g": 8},{"h": 9}]

在第二次插入期间,我将获取 res 并将附加新的 res。但是在追加的同时,我想处理列表中不同的字典。

除了一一检查列表中的所有值之外,是否有任何 python 函数可以处理此问题?

或者以任何方式让 mongodb 自己处理这个问题。

最佳答案

作为此任务的 Python 配方,您可以使用 set 作为字典项(即元组)的容器,以保留唯一元素,然后再次转换为字典:

res1 = [{"a": 1},{"b": 2},{"c": 4},{"d": 5},{"e": 6}]
res2 = [{"f": 7},{"b": 2},{"c": 4},{"g": 8},{"h": 9}]

>>> [{i:j} for i,j in {next(i.iteritems()) for i in res1+res2}]
[{'a': 1}, {'b': 2}, {'e': 6}, {'f': 7}, {'h': 9}, {'c': 4}, {'g': 8}, {'d': 5}]

关于python - 在列表中附加不同的字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871623/

相关文章:

python - 使用 hex 和 ascii 混合接收的 UDP 字节;如何解码?

python - 谷歌应用引擎 - 自动递增

python - sqlalchemy where 函数中的多个条件

python - PyMongo:JSON 键在 mongo 中得到更新

python - 字典中值之间的百分比差异

python - 列表理解从元组列表构建嵌套字典

python - 在 Python 中解码 3D-Secure PaRes

javascript - 在 Node.js 的 get 请求中链接集合方法/promise

mongodb - Mongoexport shell 脚本 - 查询错误

Swift - 编码和解码字典 [String :Any] into plist