当前位置: 首页 > 知识库问答 >
问题:

如何使用murmurhash3获得整数

劳星晖
2023-03-14

我正在寻找一个字符串和整数输入的哈希值。使用murmurhash3,我可以对字符串,但不能对整数这样做:

pip install murmurhash3
import mmh3
mmh3.hash(34)

返回以下错误:

TypeError: a bytes-like object is required, not 'int'

我可以将其转换为字节,如下所示:

mmh3.hash(bytes('34'))

但是如果输入是字符串,我会得到一个错误消息

如何在不将整数转换为字符串的情况下克服这一问题?

共有1个答案

束涵涤
2023-03-14

如何在不将整数转换为字符串的情况下克服这一问题?

你不能。或者更准确地说,您需要以某种方式将其转换为字节str,但它不需要是诸如b'34'/'34'之类的人类可读文本形式。Python3上的一种常见方法是:

my_int = 34  # Or some other value
my_int_as_bytes = my_int.to_bytes((my_int.bit_length() + 7) // 8, 'little')

它使原始int的最小化原始字节表示(与长度无关);对于34,您将得到b'“'(因为它只需要一个字节来存储它,所以您基本上得到的是一个具有序数值的bytes对象),但是对于较大的ints,它仍然可以工作(不像对chr),并且它总是尽可能小(每个字节得到8位数据,而不是像转换为文本字符串那样每个字节只需要3位)。

 类似资料:
  • 在过去的几天里做了一些阅读后,我已经取得了一些进展,下面是我想出的代码: 主要活动: HTTPRequest 没有错误,一切运行正常,但问题是-我已经建立了这个代码作为一个测试,如果我可以登录我试图登录的网站,但我无法从中获得任何信息。在我按下按钮后,似乎发生了什么事情,我发送到用户界面线程的输入流给了我这个:“java.io.BufferedInputStream@afe19b8”,每次按下按钮

  • 问题内容: 我的Go程序需要知道所有系统和用户进程的当前cpu使用率。 我如何获得? 问题答案: 我遇到了类似的问题,但从未找到轻量级的实现。这是我的解决方案的精简版,可以回答您的特定问题。我按照tylerl的建议对文件进行采样。您会注意到,我在两次采样之间等待3秒以匹配top的输出,但是在1或2秒的情况下我也取得了不错的结果。我在go例程中的循环中运行类似的代码,然后在需要其他go例程时访问cp

  • 问题内容: 如何使用Jersey 获得请求的完整HTTP REST请求主体? 在我们的例子中,数据将是XML。大小从1K到1MB不等。 该文档似乎表明您应该使用,但我看不到任何示例。 问题答案: 事实证明,您根本不需要做很多事情。 参见下文-参数将包含完整的HTTP正文(本例中为XML)。

  • 本文向大家介绍如何获得MySQL随机整数范围?,包括了如何获得MySQL随机整数范围?的使用技巧和注意事项,需要的朋友参考一下 要获取随机整数范围,请使用函数。创建表的查询- 将记录插入表中。查询如下- 现在,您可以在select语句的帮助下显示所有记录。查询如下- 以下是显示整数的输出- 生成随机整数范围的查询如下- 输出在同一表中显示随机整数范围-

  • 我正在使用Spring-Boot和Spring Security,并使用第三方的OAuth2登录名。 SSO提供程序有一个accesstokenendpoint,它返回以下JSON 引用来自accesstokenendpoint的JSON中的值。我如何访问这些值给定我的设置?

  • 我最近开始学习流和Lambda表达式,但我的代码遇到了一个问题。

  • 我正在尝试创建一个程序,它将生成斐波那契序列中的数字,直到它找到序列中的1000位数字。我使用的代码运行良好并提供有效的输出,但是,我在检索每个数字的长度时遇到了麻烦;使用我已将转换为并使用方法获取长度,但是,我发现这并没有给出真正的长度,我看不出为什么。 有没有更好的方法来获取的长度?我已经读到了thBigInteger这个问题:在一个可伸缩的方法中计算小数位数 更新运行程序后输出的文本文本为:

  • Spring4.1实例化了Jackson实例。我有理由将该实例放入我的一个控制器中:该控制器使用Jackson进行一些小的JSON解析,但是它使用的应该是Spring本身使用的同一个实例。我该怎么做呢? 注意,我不是在问如何自定义配置Spring使用的;我对默认值很满意。我只想检索Spring out使用的实例,这样我就可以在自己的代码中重用现有的实例。