我是 avro 的新手,我有一个要反序列化的 avro 文件。一些模式使用固定类型的数据来存储 MAC 地址。下面的模式是这些模式之一,并在不同的模式中用作一种类型。
MAC 地址的架构如下:
{
"type": "fixed",
"name": "MacAddress",
"size": 6
}
我使用以下方法将数据的第一条记录写入文本文件:
from avro.datafile import DataFileReader
from avro.io import DatumReader
reader = DataFileReader(open("data.avro", "rb"), DatumReader())
count = 0
for record in reader:
if count == 0:
with open('first_record.txt', 'w') as first_record:
first_record.write(str(record))
elif count > 0: break
count = count + 1
reader.close()
上述 MAC 地址出现在反序列化数据中,例如:
"MacAddress":"b""\\x36\\xe9\\xad\\x64\\x2d\\x3d",
我知道 \x 表示以下是十六进制值。所以这应该是“36:e9:ad:64:2d:3d”,对吧?“b”“”样式值是固定类型的预期输出吗?
此外,一些值如下所示:
"Addr":"b""j\\x26\\xb7\\xda\\x1d\\xf6"
"Addr":"b""\\x28\\xcb\\xc5v\\x14%"
为什么这些是 MAC 地址?j, % 字符是什么意思?