我将字典列表存储在 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/