【问题标题】:Storing python int as byte[] array for Hbase将 python int 存储为 Hbase 的 byte[] 数组
【发布时间】:2020-10-14 03:46:37
【问题描述】:

我有一个像 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 值,但欢迎所有输入。

感谢任何帮助

【问题讨论】:

    标签: python python-3.x int hex hbase


    【解决方案1】:

    试试这个:

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

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

    如果你有兴趣,这里是我找到hex的方法。

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

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 2018-08-31
      • 1970-01-01
      • 2012-02-05
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2021-05-13
      相关资源
      最近更新 更多