我正在尝试在python-3.6上使用fnv哈希函数,但我收到错误
追踪(最近一次通话): 文件" C:/Users/SACHIN/AppData/Local/Programs/Python/Python36/bloom.py" ;,第4行,在模块中 fnv.hash(data,algorithm = fnv.fnv_1a,bits = 64) 文件" C:\ Users \ SACHIN \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ fnv__init __。py",第52行,哈希 OFFSET_BASIS [比特] 文件" C:\ Users \ SACHIN \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ fnv__init __。py",第28行,fnv_1a return ensure_bits_count((hash_value ^ byte)* PRIMES [bits],bits) TypeError:^:' int'不支持的操作数类型和' 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
复制而来请让我知道究竟出了什么问题。
答案 0 :(得分:0)
今天刚遇到这个错误。我通过编码字符串来解决它。例如,下面的所有方法都可以。
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)