2016-10-22 1 views
0
from avro import io, datafile 
import pprint 
OUTFILE_NAME = "demo.avro" 
rec_reader = io.DatumReader() 
df_reader = datafile.DataFileReader(open(OUTFILE_NAME, 'r'), rec_reader) 
pp = pprint.PrettyPrinter() 
for record in df_reader: 
    pp.pprint(record) 
df_reader.close() 

Я получаю эту ошибкуAttributeError: «ул» объект не имеет атрибута «расшифровывать» при чтении из AVRO с помощью Python

"AttributeError: 'str' object has no attribute 'decode'".

Если кто-нибудь может вести меня, Что ошибка, Спасибо авансовый.

+0

Если вы читаете двоичный файл, вы должны использовать '' rb'' в качестве режима при его открытии. – spectras

ответ

0

В Python3 правильная строка unicode и не имеет метода decode. Выбирает байты.

Я ничего не знаю о avro, и вы не видите стек ошибок. Но это хорошая догадка, что datafile.DataFileReader ожидает файл, который был открыт в rb режиме. Или, может быть, он принимает имя файла и сам open (numpy читатели принимают либо имя файла, либо открытый файл).

Смежные вопросы