[英]What's the fastest way to serialize and deserialize a list of objects in Python 2.7?
我需要最快的方法來反序列化自定義 class 的大型列表(20000 項),其中 class 僅包含整數、浮點數和字符串屬性。
我應該使用 pickle、cPickle、json 還是其他什么?
到目前為止,我嘗試了 pickle,它在我嘗試加載時崩潰了。 我嘗試使用 json.dumps,它錯誤地指出我的自定義類型不可序列化。
class MyType
...
list = []
for i in range(10000):
list.append(MyType(i))
list.serialize?
鑒於 class 僅包含簡單類型,如整數、浮點數和字符串,您可以使用struct
模塊,它應該很快。 對於兩個整數(每個 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
包含所有數據並且可以寫入文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.