2014-07-23 37 views
0

的大小,我酸洗蟒蛇dictonary,并将其存储到GAE BlobProperty。 BlobProperty有一个1MB size limit。我想以编程方式检查我的对象是否适合1MB的限制腌制对象WRT GAE BlobProperty

import pickle 
p = pickle.dumps(some_object) 
print len(p) 
>>>42000 

但len(pickled_object)测量的是什么? (字符数?),以及如何将其转换为字节,以检查1MB限制?我找不到在编码的数据如何能够比较LEN()到1MB的信息(如字节每个“字符”)

由于

回答

2

序列化泡菜的大小是以字节为单位,所以len工作正常。看到这个答案一个非常类似的问题:How to get the size of a python object in bytes on Google AppEngine?

+0

谢谢。是的,我看到了另一个问题,但奇怪的是,接受的答案并没有声明len()返回* bytes *的数量,所以我认为值得在记录中找到它。 – tom

+0

对于我的教育:是否在Python文档中的任何地方说过,pickle对象的len()返回字节长度?我没有看到,但也许我看错了地方? https://docs.python.org/2/library/pickle.html – tom

+1

好问题,我们可以推断,从Python 2.x字符串只是字节的事实,除非与unicode(默认在3.x,在这种情况下,人们必须先解码它们)。 –