gpt4 book ai didi

python - 在 python 中将二进制转换为枚举以进行 Redis 转换

转载 作者:可可西里 更新时间:2023-11-01 11:24:46 26 4
gpt4 key购买 nike

我在 redis 中存储一个枚举。当我加载它时,该值是二进制的。如何将其转换为 Python 枚举?

示例代码:

class Position(Enum):
LEFT = 10
RIGHT = 11

current_position = Position.LEFT
r.set('current_position', Position.LEFT)
loaded_current_position = r.get('current_position_side')

print(current_position) # Position.LEFT
print(loaded_current_position) # b'Position.LEFT'

在这个例子中,我想让 loaded_current_position 等于 Position.LEFT 而不是 b'Position.LEFT'

最佳答案

存储的是枚举成员的名称。可能有一个特定于 redis 的答案,但通常您可以将 Enum 与另一种数据类型混合,例如 int,然后在检索时将其转换回 Enum;像这样的东西:

class Position(int, Enum):
LEFT = 10
RIGHT = 11

current_position = Position.LEFT
r.set('current_position', Position.LEFT)
loaded_current_position = Position(r.get('current_position_side'))

print(current_position) # Position.LEFT
print(loaded_current_position) # Position.LEFT

注意:要使上述工作正常,redis 必须保存并返回一个 int

关于python - 在 python 中将二进制转换为枚举以进行 Redis 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com