在python 3.7中,我想将avro对象编码为字符串。
我发现示例转换为字节数组,但没有字符串。
转换为字节数组的代码:
def serialize(mapper, schema):
bytes_writer = io.BytesIO()
encoder = avro.io.BinaryEncoder(bytes_writer)
writer1 = avro.io.DatumWriter(schema)
writer1.write(mapper, encoder)
return bytes_writer.getvalue()
mapper
是一个词典,它将填充avro对象。
io
提供StringIO
,我假设需要使用它代替BytesIO
,但是与之使用的编码器是什么呢?我们如何序列化?
例如,如果a
是您的AVRO对象,则可以使用AVRO的a.to_json()
,然后使用json.dumps(a)