2014-11-04 66 views
3

我正在尝试使用Java编写Avro序列化文件,然后在Windows上使用Python读取它。我能够使用Java写出Avro文件,但是当我尝试使用Python读取它时,我得到一个错误“ord()期望一个字符,但字符串长度为0”窗口上的Python Avro给ord()期望一个字符,但字符串长度为0发现

这不是一个错误该文件不完整或不刷新,因为我可以通过Java完全读取文件,并且它读取正常。

这不是我的蟒蛇设置基本的错误,因为我可以运行的Avro入门页面上的样品序列化/反序列化:http://avro.apache.org/docs/current/gettingstartedpython.html

任何想法,这可能是。

回答

4

我自己回答这个问题,因为我看到几个类似的帖子在各种表格上,没有一个人回答。

问题是我用模式“r”而不是“rb”打开我的python文件。这读入罚款,直到它击中一个字节与十六进制0x1A,它被解释为Windows上文件的结尾。解决方案是以二进制文件打开文件。

(我建议Avro入门(Python)页面更改为使用二进制模式文件以避免其他人遇到此问题。)

相关问题