首页 > 解决方案 > 将 python int 存储为 Hbase 的 byte[] 数组

问题描述

我有一个像 215666 这样的 Python int,我需要将它存储在 hbase 的字节数组中。215666 的十六进制值是 34A72 我应该有以下

\x00\x00\x00\x00\x34\x0A72

我尝试了以下方法:

(215666).to_bytes(8, byteorder='big')

这给了我不是十六进制的字符:

\x00\x00\x00\x00\x00\x00T>

此方法似乎适用于较小的数字,但随后开始打印奇怪的非十六进制值。我很确定 hbase 需要 HEX 值,但欢迎对此的所有输入。

任何帮助表示赞赏

标签: pythonpython-3.xinthexhbase

解决方案


尝试这个:

(215666).to_bytes(8, byteorder='big').hex()

它不一定是十六进制才能有效bytes。如果您希望它采用您正在谈论的十六进制格式,则该bytes对象具有此hex方法,该方法将其格式化为十六进制。

如果您有兴趣,这是我找到的方法hex

  1. 我打开了一个 python shell
  2. 我复制了您的行并将其分配给一个名为的变量foo
foo = (215666).to_bytes(8, byteorder='big')
  1. 我查看了以下类型footype(foo)
  2. 我查看了 : 上的方法/foo属性dir(foo)。我可以看到它是一个bytes对象,并且我看到了hex方法,所以我尝试了它。

推荐阅读