AttributeError:'str'对象在使用Python从AVRO读取时没有属性'decode'

时间:2016-10-22 05:38:12

标签: python avro

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: 'str' object has no attribute 'decode'".

如果有人能指导我这个错误, 提前谢谢。

1 个答案:

答案 0 :(得分:0)

在Python3中,常规字符串为unicode,并且没有decode方法。字节串可以。

我对avro一无所知,也没有显示错误堆栈。但很好的猜测datafile.DataFileReader期望文件以rb模式打开。或者它可能需要文件名,并且open本身(numpy读者接受文件名或打开的文件)。