2024-04-25 22:23:36 发布
网友
我需要最快的方法来反序列化自定义类的一个大列表(20000项),其中该类只包含整数、浮点和字符串属性
我应该使用pickle、cPickle、json还是其他什么
到目前为止,我尝试了pickle,它在我尝试加载时崩溃。我尝试使用json.dumps,但它错误地指出我的自定义类型不可序列化
class MyType ... list = [] for i in range(10000): list.append(MyType(i)) list.serialize?
考虑到类只包含简单的类型,如整数、浮点和字符串,您可以使用^{}模块,而且应该很快。对于两个整数(每个32位)、一个浮点(双精度)和一个字符串(最多20个字符),类似于此:
codec = struct.Struct('<iid20s') size = codec.size buf = bytearray(size * len(items)) offset = 0 for item in items): codec.pack_into(buf, offset, item.int1, item.int2, item.float1, item.string1) offset += size
现在buf包含所有数据,可以写入文件
buf
考虑到类只包含简单的类型,如整数、浮点和字符串,您可以使用^{} 模块,而且应该很快。对于两个整数(每个32位)、一个浮点(双精度)和一个字符串(最多20个字符),类似于此:
现在
buf
包含所有数据,可以写入文件相关问题 更多 >
编程相关推荐