用于序列化/反序列化的python编码/解码器(Java在python中的kyro等价)

2024-09-29 01:31:09 发布

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

我需要将python值转换成字节数组,反之亦然。在

例如:

  1. 整数256->;[1,1]//256=1*255+1
  2. 字符串“ab”->;[97,98]//“a”->;97,“b”->;98
  3. 浮点1.23->;[63,157,112,164]//1.23作为4字节表示

对于java,kryo可以用于此目的:byte[] serializedValue = kryoSerializer.writeObjectData(value);给我值的序列化结果。在

我尝试过pickle,但不能使用它,因为它存储一个整数对象需要6个字节。在

import pickle

Foo = 256
picklestring = pickle.dumps(Foo)
print len(picklestring) # returns 6

有什么线索吗?在

已添加

^{pr2}$

Tags: 字符串gt目的字节abfoo整数数组
1条回答
网友
1楼 · 发布于 2024-09-29 01:31:09

使用^{} module

>>> import struct
>>> struct.pack('>f', 1.23)
'?\x9dp\xa4'
>>> len(struct.pack('>f', 1.23))
4

Struct按照C约定压缩值;上面的格式以big-endian顺序压缩一个单精度浮点值(4个字节)。在

相关问题 更多 >