【问题标题】:Kafka Consumer: How to read specific Avro field in Python?Kafka Consumer:如何在 Python 中读取特定的 Avro 字段?
【发布时间】:2020-06-23 04:36:46
【问题描述】:

在消费者的下面sn-p中,我能够接收到发送的数据。我如何访问整个数据中的特定值以使用。

from confluent_kafka import KafkaError
from confluent_kafka.avro import AvroConsumer
from confluent_kafka.avro.serializer import (SerializerError,
                                             KeySerializerError,
                                             ValueSerializerError)

***
***
***

c.subscribe(['Topic'])

while True:
    try:
        msg = c.poll(10)
        print(msg)

谢谢

【问题讨论】:

    标签: python apache-kafka kafka-consumer-api avro confluent-platform


    【解决方案1】:

    实际上有两种方法可以实现:

    msg.value()['myFieldName']
    

    msg.value().get('myFieldName')
    

    例如,

    c = AvroConsumer({
        'bootstrap.servers': 'localhost:9092',
        'schema.registry.url': 'localhost:8081',
        'group.id': 'test-group'
    })
    
    
    c.subscribe(['Topic'])
    
    while True:
        try:
            msg = c.poll(10)
    
            if msg:
                print(f"field1 Value: {msg.value()['field1']}")
                print(f"field2 Value: {msg.value().get('field2')}")
    
            else: 
                pass
        except SerializerError as e:
            print(f"Message deserialization failed for message {msg}:\n{e}")
    

    【讨论】:

    • 还有get('myFieldName', 'default')
    【解决方案2】:

    我看到你正在导入 AvroConsumer,所以你应该有

    c.value()['field'] 
    

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2019-12-31
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 2022-01-12
      相关资源
      最近更新 更多