get_data方法
- ezros.BytesMessage.get_data()
用于从序列化的字节流中提取并还原原始数据,自动处理压缩数据的解压缩过程。
- Returns:
与创建
BytesMessage时传入的原始数据完全一致的内容,支持字典、列表、字符串、NumPy数组等多种数据类型。- Return type:
Any
- Raises:
ValueError – 若消息数据损坏或序列化格式异常,可能触发此异常。
ImportError – 若创建消息时使用了特定压缩算法(如
lz4),但当前环境未安装对应解压库,会触发此异常。
- Note:
无论创建
BytesMessage时是否启用压缩(compression 参数),get_data()都会自动适配解压逻辑,无需手动处理。反序列化后的数据类型与原始数据严格一致(如原始数据为字典,返回结果也为字典),确保数据完整性。
示例代码
import ezros
# 1. 基本用法:无压缩数据的反序列化
raw_data = {
"key": "value",
"numbers": [1, 2, 3],
"status": True,
"score": 95.5
}
# 创建BytesMessage对象(自动序列化)
msg = ezros.BytesMessage(raw_data)
# 调用get_data()反序列化,恢复原始数据
recovered_data = msg.get_data()
print("原始数据:", raw_data)
print("恢复数据:", recovered_data)
print("数据类型是否一致:", type(recovered_data) == type(raw_data)) # 输出 True