2016-07-20 24 views
1

我正在尝试将用Ruby编写的Avro字节解码为Kafka主题。在目测avro字节字符串,我可以看到它看起来很好。但是,当我尝试解码时,出现'UnicodeDecodeError:'utf8'编解码器无法解码位置32中的字节0x98:无效起始字节'。在红宝石中写Avro并在Python中阅读

import avro.schema 
import avro.io 
import io 

bytes_reader = io.BytesIO(m.value) 
decoder = avro.io.BinaryDecoder(bytes_reader) 
reader = avro.io.DatumReader(schema) 
print reader.read(decoder) 

谢谢。

回答

0

修改代码这种方式解决了这个问题

bytes_reader = io.BytesIO(msg.value) 
reader = DataFileReader(bytes_reader, DatumReader()) 
for r in reader: 
    print r