使用 adler32 对 Python 3 个字符串进行确定性散列
Deterministic hashing of Python 3 strings with adler32
我阅读了here以下内容:
Note:
To generate the same numeric value across all Python versions and
platforms use adler32(data) & 0xffffffff
.
我希望将其应用于以下形式的字符串:"S89234IX"
,但是当我这样做时,我得到:
> zlib.adler32("S89234IX")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-84eee14d45ae> in <module>()
----> 1 zlib.adler32(campaigns_to_work_with[0])
TypeError: 'str' does not support the buffer interface
关于如何将此函数应用于字符串的任何想法?
data
必须是字节串。如果要计算 Unicode 数据的校验和,则需要将其编码为字节字符串,并且需要确保坚持使用特定的编码。例如,使用 UTF-8:
checksum = zlib.adler32("S89234IX".encode('utf-8')) & 0xffffffff
我阅读了here以下内容:
Note: To generate the same numeric value across all Python versions and platforms use
adler32(data) & 0xffffffff
.
我希望将其应用于以下形式的字符串:"S89234IX"
,但是当我这样做时,我得到:
> zlib.adler32("S89234IX")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-84eee14d45ae> in <module>()
----> 1 zlib.adler32(campaigns_to_work_with[0])
TypeError: 'str' does not support the buffer interface
关于如何将此函数应用于字符串的任何想法?
data
必须是字节串。如果要计算 Unicode 数据的校验和,则需要将其编码为字节字符串,并且需要确保坚持使用特定的编码。例如,使用 UTF-8:
checksum = zlib.adler32("S89234IX".encode('utf-8')) & 0xffffffff