deserialization - 使用 kafka-python ParseFromString 的 Protobuf 消息解码错误
问题描述
我有一个如下的 protobuf 模型:即protoObj
sample {
barcode: "BAR000002"
requisition_id: "ORDER-1"
patient_id: "P00002"
cancer_type: "CRC"
}
assay {
key: "lunar2"
title: "Lunar2"
version: "3.0"
}
lunar2 {
type: REPORT_TYPE_COMPLETED
version: 1
limitations: "TBD"
disclaimers: "TBD"
header {
test_name: "XYZ"
manufacturer: "ABCD"
sofware_verision: "TBD"
regulatory_status: "IVD"
}
content {
requisition_id: "ORDER-1"
created {
seconds: 1631736582
nanos: 986649036
}
result: "ctDNA DETECTED"
}
}
现在我将其发送给 Kafka 生产者,如下所示
kafkaProducer.send('topic-test', protoObj.SerializeToString())
现在在消费者端,我想在 JSON 上反序列化它并将这个 JSON 发送到下游服务,我在下面做:
def consumerMessage(self):
for msg in self.kafkaConsumer:
prototype_pb2.Proto().ParseFromString(msg.value)
print(prototype_pb2)
但我收到以下错误:
google.protobuf.message.DecodeError: Error parsing message
我不明白问题到底出在哪里。请帮忙。
解决方案
推荐阅读
- django - 如何在 Django 中链接 select_related 函数?
- bash - 从 bash shell 运行“git filter-branch”
- django - 数据未填写编辑配置文件表单 Django
- android - 尝试将 firebaseml vision 和 firebase core/auth 集成到颤振中时,应用程序停止工作
- python - 如何比较具有相同列但行数不同的两个数据框?
- python - 在 VS Code 终端中显示经过的时间
- json - 如何将嵌套的 JSON 文件解码为具有无主属性的 swift 类
- android - JUnit 本地测试 - Android 上下文“未注册仪器!”
- ruby - if/elsif 数能被 3 整除
- c# - Unity 每次点击都会增加 90º