获取对象的长度(八进制)

时间:2018-10-03 18:02:36

标签: python python-2.7

我需要计算以八进制表示的字典长度,以符合BUFR标准,该标准指出:

Total length of BUFR message, in octets (including Section 0)

我已经能够找到字节,但是找不到用于解码八进制的信息。 要获取字节,我会这样做:

sys.getsizeof(json_list)

1 个答案:

答案 0 :(得分:1)

sys.getsizeof()将为您提供内存中对象的大小。但是从您的描述看来,您似乎在寻找字典的一些序列化的长度(变成一条消息)。

看起来您正在使用JSON,这很有意义。例如,使用json.dumps()

json_string = json.dumps(your_dict)

下一个问题是如何获取该字符串的长度(八位字节)。

好的len(json_string)将为您提供个字符的数量,但是对于大多数编码,传输这些字符所需的字节数将有所不同。(Docs)< / p>

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

len(json_string.encode(<your encoding>))

这将为您提供传输该词典所需的八位字节数。

注意:消息的其他任何要求,例如标头,定界符,转义,格式等,都将是此号码的补充。