首页 > 解决方案 > *Python* 如果条件为真,如何将两个单独的 PKL 文件中的多个值复制到具有两个键的单个字典中?

问题描述

我正在尝试使用嵌套的 for 循环解析 2 个单独的 .pkl 文件(这部分效果很好)。这两个文件都包含以导入哈希作为值的字典。

我想将第一个 .pkl 中的每个哈希与另一个 .pkl 文件中的每个哈希进行比较,如果有匹配项,请将它们转储到另一个 .pkl 文件中。

问题是只有第一个匹配被转储,而其余的被忽略,尽管它们匹配哈希值。最后两个打印语句用于验证加载的 .pkl 文件是否为空。

def compareimphash(path1, path2):
matching = {}
dictfile1 = open(path1, 'rb')
dictfile2 = open(path2, 'rb')
dict1 = pickle.load(dictfile1)
dict2 = pickle.load(dictfile2)
if not os.path.exists('pickle/'):
    os.makedirs('pickle/')
for keys1 in dict1:
    for keys2 in dict2:
        if dict1[keys1] == dict2[keys2]:
            matching[keys1, keys2] = dict1[keys1].copy()
            pickle.dump(matching, open('pickle/matchingimphashes.pkl', 'ab'))

        print('Dictionary 1: ', keys1, '=>', dict1[keys1])
        print('Dictionary 2: ', keys2, '=>', dict2[keys2])

标签: pythondictionarypickle

解决方案


推荐阅读