python获取对象的大小

python获取对象的大小,python,Python,我需要知道python程序中对象的大小。 我有for循环,我需要知道对象的大小。 如果使用sys.getsizeof则内存不会立即释放 我看不到实际尺寸。有办法吗 我的对象是json和字符串。在最坏的情况下,我可以 将它们保存到文件并查看文件大小。但是我看起来怎么样 python代码中的文件大小 编辑:序列化对象的大小对我来说更重要。 所以问题的第二部分很重要 谢谢。考虑到类型(json.dumps(something))==str您应该可以直接使用len 考虑以下几点 obj = {'cont

我需要知道python程序中对象的大小。 我有
for
循环,我需要知道对象的大小。 如果使用
sys.getsizeof
则内存不会立即释放 我看不到实际尺寸。有办法吗

我的对象是json和字符串。在最坏的情况下,我可以 将它们保存到文件并查看文件大小。但是我看起来怎么样 python代码中的文件大小

编辑:序列化对象的大小对我来说更重要。 所以问题的第二部分很重要


谢谢。

考虑到
类型(json.dumps(something))==str
您应该可以直接使用
len

考虑以下几点

obj = {'content' : 'something goes here'}
json_obj = json.dumps(obj)
json_size = len(json_obj)

serialized_size = len(serialized_object)

if json_size < serialized_size:
  print "I'd use the JSON with this..."
obj={'content':'something go here'}
json_obj=json.dumps(obj)
json_size=len(json_obj)
序列化的\u大小=len(序列化的\u对象)
如果json_大小<序列化_大小:
打印“我会将JSON用于此…”

磁盘上的文件大小(表示对象的序列化形式)不一定与相应对象占用的内存量相对应。你为什么需要知道尺寸?你关心内存消耗吗?你想解决的更大的问题是什么?你想用这些信息做什么?可能会有一条更简化的路径来实现你的目标。你需要它做什么?有几种“大小”。我的程序中有json和文本。我需要比较这两个字符的大小。不是每个字符8位吗?我想跟进一下,因为我在2012年发布了这个。这适用于Python2.7。在Python 3中,字符串本身就支持unicode字符,因此假设
len(str_对象)
等于字节数是不安全的,因为unicode字符不一定每个都是1字节。在python 3中,您可以执行
len(json_obj.encode(“utf-8”))
,它应该是字节数。很可能序列化的对象也会被编码为utf-8。如果数据是ASCII格式,或者两种格式基本相同,那么原始建议不仅有用,而且非常准确。尽管如此,我希望这可以得到更新,以提供以字节为单位的真实长度。不过,我的知识还不够渊博,无法提出修改建议。