fnv 0.2.0 使用类型E

2024-06-16 11:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python-3.6上使用fnv散列函数,但是我得到了一个错误

Traceback (most recent call last): File "C:/Users/SACHIN/AppData/Local/Programs/Python/Python36/bloom.py", line 4, in module fnv.hash(data, algorithm=fnv.fnv_1a, bits=64) File "C:\Users\SACHIN\AppData\Local\Programs\Python\Python36\lib\site-packages\fnv__init__.py", line 52, in hash OFFSET_BASIS[bits] File "C:\Users\SACHIN\AppData\Local\Programs\Python\Python36\lib\site-packages\fnv__init__.py", line 28, in fnv_1a return ensure_bits_count((hash_value ^ byte) * PRIMES[bits], bits) TypeError: unsupported operand type(s) for ^: 'int' and 'str'

对于代码

import fnv

data = 'my data'
fnv.hash(data, algorithm=fnv.fnv_1a, bits=64)
fnv.hash(data, bits=64)
fnv.hash(data, algorithm=fnv.fnv, bits=64)

完全是从https://pypi.python.org/pypi/fnv/0.2.0复制过来的

请告诉我到底出了什么问题。你知道吗


Tags: inpydatalocallinehashalgorithmusers
1条回答
网友
1楼 · 发布于 2024-06-16 11:25:04

今天刚遇到这个错误。我通过编码字符串来绕过它。例如,下面的方法应该都可以。你知道吗

import fnv

data = 'my data'
fnv.hash(data.encode(), algorithm=fnv.fnv_1a, bits=64)
fnv.hash(data.encode('ascii'), bits=64)
fnv.hash(data.encode('utf-8'), algorithm=fnv.fnv, bits=64)

相关问题 更多 >