python - *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])
解决方案
推荐阅读
- php - 如何使用foreach循环获取数组值
- c# - 从 C# 中的视图模型中按名称关闭活动窗口?
- node.js - 使用 POST 请求将数据从 Node 服务器发送回 React 客户端
- python - 如何比较句子与关键字位置的想法?
- bash - 使用 IGNORECASE 时 awk 保留标题
- c# - 如何从 DotNetCore 2.2 中的 appsettings.json 读取连接字符串?
- python - 一个测试用例显示超出时间限制。为什么?
- create-react-app - 默认颜色不适用于`tailwind.macro`
- c - 如何在 aes 中存储对称密钥
- c# - 使用 Intersect 比较 2 个列表,但在第 3 个列表中应包含列表 2 中的匹配 AND 属性