1. 程式人生 > >python 獲取兩個dict的差異

python 獲取兩個dict的差異

參考文件: https://stackoverflow.com/questions/1165352/calculate-difference-in-keys-contained-in-two-python-dictionaries     class DiffDict(object):     """獲取兩個dict的差異"""
    def __init__(self, current, last):         self.current = current         self.last = last         self.set_current = set(current)         self.set_last = set(last)         self.intersect_keys = self.set_current & self.set_last
    def get_added(self):         """current - 交集 = 新增的key"""         added_keys = self.set_current - self.intersect_keys         return [{'key': key, 'value': self.current.get(key)} for key in added_keys]
    def get_removed(self):         """last - 交集 = 減去的key"""         removed_keys = self.set_last - self.intersect_keys         return [{'key': key, 'value': self.current.get(key)} for key in removed_keys]
    def get_changed(self):         """用交集中的key去兩個dict中找出值不相等的"""         changed_keys = set(o for o in self.intersect_keys if self.current.get(o) != self.last.get(o))         return [{             'key': key,             'value': '%s -> %s' % (self.last.get(key), self.current.get(key))         } for key in changed_keys]