我需要计算以八进制表示的字典长度,以符合BUFR标准,该标准指出:
Total length of BUFR message, in octets (including Section 0)
我已经能够找到字节,但是找不到用于解码八进制的信息。 要获取字节,我会这样做:
sys.getsizeof(json_list)
答案 0 :(得分:1)
sys.getsizeof()
将为您提供内存中对象的大小。但是从您的描述看来,您似乎在寻找字典的一些序列化的长度(变成一条消息)。
看起来您正在使用JSON,这很有意义。例如,使用json.dumps()
:
json_string = json.dumps(your_dict)
下一个问题是如何获取该字符串的长度(八位字节)。
好的len(json_string)
将为您提供个字符的数量,但是对于大多数编码,传输这些字符所需的字节数将有所不同。(Docs)< / p>
因此,首先需要将字符串编码为字节,然后使用结果字节对象的长度:
len(json_string.encode(<your encoding>))
这将为您提供传输该词典所需的八位字节数。
注意:消息的其他任何要求,例如标头,定界符,转义,格式等,都将是此号码的补充。