我是Python的新手,想比较列表中存在的多个字典并查找相似的键值对。该列表是通过从mongodb中读取一个集合来创建的。下面是我尝试过的代码,但是它将第一本词典与其他词典进行了比较。我希望所有这些都可以相互比较。有人可以帮忙吗?
import json
import pandas as pd
from pymongo import MongoClient
try:
client = MongoClient()
print("Connected successfully!!!")
except:
print("Could not connect to MongoDB")
# database
db = client.conn
collection = db.contactReg
df = collection.find()
x = []
for row in df:
x.append(row)
print(x)
common = {}
for k in x[0]:
for i in range(1,len(x)):
if x[0][k] != x[i][k]: continue
common[k] = x[i][k]
print(common)
列表“ x”包含以下内容:
[{'_id': ObjectId('5bbc86e5c16a27f1e1bd39f8'), 'name': 'swetha', 'nameId':
123.0, 'source': 'Blore', 'sourceId': 10, 'LastUpdate': '10-Oct-2018'},
{'_id': ObjectId('5bbc86e5c16a27f1e1bd39f9'), 'name': 'swetha', 'nameId':
123.0, 'source': 'Mlore', 'sourceId': '11', 'LastUpdate': '11-Oct-2018'},
{'_id': ObjectId('5bbc86e5c16a27f1e1bd39fa'), 'name': 'swathi', 'nameId':
124.0, 'source': 'Mlore', 'sourceId': '11', 'LastUpdate': '9-Oct-2018'}]
输出如下:
[{'_id': ObjectId('5bbc86e5c16a27f1e1bd39f8'), 'name': 'swetha', 'nameId':
123.0, 'source': 'Blore', 'sourceId': 10.0, 'LastUpdate': '10-Oct-2018'},
{'_id': ObjectId('5bbc86e5c16a27f1e1bd39f9'), 'name': 'swetha', 'nameId':
123.0, 'source': 'Mlore', 'sourceId': '11', 'LastUpdate': '11-Oct-2018'},
{'_id': ObjectId('5bbc86e5c16a27f1e1bd39fa'), 'name': 'swathi', 'nameId':
124.0, 'source': 'Mlore', 'sourceId': '11', 'LastUpdate': '9-Oct-2018'}]
common: {'name': 'swetha', 'nameId': 123.0}