我是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}