You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala ByteBuffer功能的Python替代方案:实现相同SHA1转Long结果

Scala代码转Python实现方案

你要实现的逻辑可以直接用Python内置的struct模块完成,不需要引入第三方ByteBuffer类库,核心是对齐Java/Scala ByteBuffer默认的大端序解析规则。

完整可运行代码如下:

import hashlib
import struct

s = "28087|33|580|21|a2aa639d-6b3a-4844-b343-8d1b335af21b|9|1|1|0|1|0|0|0|1"
hashBytes = hashlib.sha1(bytearray(s, 'utf-8')).digest()

# 取前8字节按大端序解析为有符号64位长整型
result = struct.unpack('>q', hashBytes[:8])[0]
print(result)

运行后输出结果为 -3586932978655362506,和原Scala代码输出完全一致。

逻辑说明

  • struct.unpack的格式符>q中:
    • >代表使用大端序(和Java ByteBuffer默认字节序一致)
    • q代表解析为有符号64位长整型,对应Scala的Long类型
  • hashBytes[:8]对应原Scala代码中取哈希结果前8个字节的逻辑

内容的提问来源于stack exchange,提问作者seou1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:27:02