我想不通。我有两个相同的字典。我使用标准方法来确定差异,应该没有差异。但是某些值类型总是作为差异返回,即使它们不是。例如,如果值为 a pymongo.bson.ObjectId
,则该方法无法将其评估为相同。
d1 = {'Name':'foo','ref1':ObjectId('502e232ca7919d27990001e4')}
d2 = {'Name':'foo','ref1':ObjectId('502e232ca7919d27990001e4')}
d1 == d2
返回:
True
但:
set((k,d1[k]) for k in set(d1) & set(d2) if d1[k] != d2[k])
返回:
set([('ref1',Objectid('502e232ca7919d27990001e4'))])
所以我发现这很奇怪,不是吗?
d1['ref1'] == d2['ref1'] # True
d1['ref1'] != d2['ref1'] # False
什么?????!?!??!!?