我正在尝试编写一个Avro使用者,其中数据是按字节编码的,并且没有模式就被发送。我遵循了https://stackoverflow.com/a/25130722/2276564
我如何遍历数据读取器,我无法知道有多少记录会通过字节流,并且想遍历或一次读取所有记录。我想我不能使用DataFileReader,因为架构被剥离并且流被编码了。

我目前正在遍历datumreader并使用错误处理来管理它将到达流结束的情况。

任何清洁/更好的方法来实现这一目标?

最佳答案

我通过使用io.BytesIO的.tell()方法解决了该问题,该方法返回缓冲区的当前位置。每次读取后,程序都会查询当前位置,并检查其是否小于指定给缓冲区的有效载荷的长度。

 while bytes_reader.tell() < len(payload):
        records.append(reader.read(decoder))

关于python - 在Python中的Avro DatumReader上进行迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48646639/

10-13 09:16