在Python中迭代avro DatumReader

2024-06-02 05:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个avro消费者,其中的数据是字节编码的,并且没有模式发送。我跟着https://stackoverflow.com/a/25130722/2276564。 我如何迭代datumreader,我无法知道有多少记录将通过bytestream,我想一次迭代或读取所有记录。我想我不能使用DataFileReader,因为模式被剥离,流被编码了。

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

有没有更干净/更好的方法来实现这一点?


Tags: 数据httpscom编码字节记录模式情况
1条回答
网友
1楼 · 发布于 2024-06-02 05:00:17

我用的.tell()方法解决了这个问题拜特西奥返回缓冲区的当前位置。每次读取后,程序都会查询当前位置,并检查其是否小于指定给缓冲区的有效负载的长度。在

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

相关问题 更多 >