【发布时间】:2021-07-08 06:50:59
【问题描述】:
我正在解析来自多个来源的数据,并且我想为每个条目分配一个唯一的(字符串)ID。每个条目包含一个标题(字符串)、url(字符串)和正文(字符串)。我们可以从多个来源获得相同的标题,但它们会有不同的 url,我想在这种情况下存储这两个项目。我正在考虑创建一个标题和 url 的哈希并将其分配为一个 id,这样如果我从不同的来源获得相同的标题和 url,id 将是相同的,我将能够识别它是重复的。
import hashlib
hashlib.sha256(str("title url").encode('utf-8')).hexdigest()
但我认为可能存在 2 个不同的标题 url 组合可能会生成相同的哈希值的情况,不知道如何克服冲突。有人可以建议一种使用字符串生成唯一标识符的方法 我不想使用时间戳,因为我可能会在不同时间从不同来源获得同一行
【问题讨论】:
-
好吧,你可以检查
if hash not in hashes: -
如何组合
title + url + body而不是单个title来生成哈希 -
不,你不会,没有办法,你会遇到 SHA256 冲突,这是一个加密哈希函数,你很安全