Python 获取对象的长度(以八个字节为单位)

Python 获取对象的长度(以八个字节为单位),python,python-2.7,Python,Python 2.7,我需要计算字典的长度(以八位为单位),以符合BUFR标准,该标准规定: Total length of BUFR message, in octets (including Section 0) 我能找到字节,但不能找到解码八位字节的信息。 要获取字节,我将执行以下操作: sys.getsizeof(json_list) 将为您提供内存中对象的大小。但是根据您的描述,听起来您在查找字典的某些序列化(到消息中)的长度 看起来您正在使用JSON,这很有意义。例如,使用: 下一个问题是如何获得该字

我需要计算字典的长度(以八位为单位),以符合BUFR标准,该标准规定:

Total length of BUFR message, in octets (including Section 0)
我能找到字节,但不能找到解码八位字节的信息。 要获取字节,我将执行以下操作:

sys.getsizeof(json_list)
将为您提供内存中对象的大小。但是根据您的描述,听起来您在查找字典的某些序列化(到消息中)的长度

看起来您正在使用JSON,这很有意义。例如,使用:

下一个问题是如何获得该字符串的长度(以八位字节为单位)

嗯,
len(json_string)
会给出字符数,但对于大多数编码,传输这些字符所需的字节数是不同的。()

因此,首先需要将字符串编码为字节,然后使用生成的字节对象的长度:

len(json\u string.encode())

这将为你提供传输字典所需的八位字节数


注:消息的任何其他要求,如标题、分隔符、转义、格式等,都将添加到此数字之外。

八位字节是计算和电信中的数字信息单位,由八位组成。当术语“字节”可能模棱两可时,通常使用该术语,因为字节历来用于各种大小的存储单元。
您已经发现的内容如何不足?我只是偶然发现了相同的信息,出于某种原因,我想到的是位而不是字节。如果你的回答是有价值的,你可以回答,我会认为它是正确的。嗯,一本词典的八分词长度应该是多少?注意,在Python中使用的对象基本上包含许多指向不同对象的指针,因此,您必须准确地考虑这对于这种二进制格式意味着什么。字典包含浮点列表和浮点列表。
sys.getsizeof
不会给您一个估计值(至少不适用于内置对象)。您只需了解它的含义,它提供对象的大小,但不提供对象(内部)引用的对象。对于stdlib,它可能始终提供实际数量,但它是由实现定义的:getsizeof()调用对象的
\uuuuu sizeof\uuuuu
方法是的,这是真的。但可以保证内置对象将返回正确的结果。@juanpa.arrivillaga将其取出——无需混淆细节
json_string = json.dumps(your_dict)