2016-07-20 48 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