python - dhash.get_num_bits_different 出错
问题描述
我正在关注这个库“dhash”,但在使用它时出错dhash.get_num_bits_different
:
def get_num_bits_different(hash1, hash2):
return bin(hash1 ^ hash2).count('1')
hash1 = '3d77xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
hash2 = '9301xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
get_num_bits_different(hash1, hash2)
>>
TypeError: unsupported operand type(s) for ^: 'str' and 'str'
解决方案
将字符串转换为 int,如:
get_num_bits_different(int(hash1, 16), int(hash2, 16))
测试代码:
def get_num_bits_different(hash1, hash2):
return bin(hash1 ^ hash2).count('1')
hash1 = '3d77'
hash2 = '9301'
print(get_num_bits_different(int(hash1, 16), int(hash2, 16)))
结果:
10
推荐阅读
- javascript - 使用 Angular 4 上传文件
- html - FontAwesome 从 4 升级到 5 (Tumblr)
- javascript - reactjs 如何处理数组内部的状态变化?(对 Select 元素使用 antd 设计)
- c# - Nmodbus 返回 NotImplementedException: Function code 123 not supported exception while reading response data
- java - 使用 Spring Boot 在 TestNg 测试用例中提供 BeanFactory Bean
- guile - 配置说没有找到 guile-config
- django - 如何进行查询以获取 Django ORM 中每个组的最后一个元素?
- python - 在 Python 中对来自不同类别的 n 长度数组的分类数据进行编码
- heroku - 在 Heroku 上使用 Redis 的服务器端 Flask 会话
- jquery - 如何使用输入文本和选择对数据表应用高级搜索?