在python中将二进制强制转换为枚举以进行redis转换

2024-04-24 04:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在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'


Tags: 代码rightredis示例get二进制positionenum
1条回答
网友
1楼 · 发布于 2024-04-24 04:30:09

存储的是枚举成员的名称。可能有特定于redis的答案,但一般来说,您可以将枚举与另一种数据类型(如int)混合,然后在检索时将其转换回枚举;类似于:

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

相关问题 更多 >