Trim 使用 python 从 Kafka 主题返回的值

Trim a returned value from a Kafka topic using python

我有一个简单的 python 模块如下:

from kafka import KafkaConsumer

consumer = KafkaConsumer(
    'myTestTopic',
    bootstrap_servers=['localhost:9092'],
    auto_offset_reset='earliest',
    enable_auto_commit=True)

for message in consumer:
    message = message.value
    print(message)

这将 return 如下所示:

b'&name=bob&gender=M&type=student&sId=1204&note=temp&'

b'&name=bob&gender=M&type=student&sId=1204&'

我的问题是:是否有一种巧妙的方法来 remove/trim 前两个字符,例如:(b') 和最后一个字符 ( ') 来自将被 returned 的每一行?

所以基本上它看起来像:

&name=bob&gender=M&type=student&sId=1204&note=temp&

&name=bob&gender=M&type=student&sId=1204&

发生这种情况是因为您的回复类型 bytes 不是字符串。你需要解码它,像这样的东西应该可以工作:

message = str(message.value, encoding='utf-8')
print(message)

做:

message.value.decode('utf-8')