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¬e=temp&'
b'&name=bob&gender=M&type=student&sId=1204&'
我的问题是:是否有一种巧妙的方法来 remove/trim 前两个字符,例如:(b') 和最后一个字符 ( ') 来自将被 returned 的每一行?
所以基本上它看起来像:
&name=bob&gender=M&type=student&sId=1204¬e=temp&
&name=bob&gender=M&type=student&sId=1204&
发生这种情况是因为您的回复类型 bytes 不是字符串。你需要解码它,像这样的东西应该可以工作:
message = str(message.value, encoding='utf-8')
print(message)
做:
message.value.decode('utf-8')
我有一个简单的 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¬e=temp&'
b'&name=bob&gender=M&type=student&sId=1204&'
我的问题是:是否有一种巧妙的方法来 remove/trim 前两个字符,例如:(b') 和最后一个字符 ( ') 来自将被 returned 的每一行?
所以基本上它看起来像:
&name=bob&gender=M&type=student&sId=1204¬e=temp&
&name=bob&gender=M&type=student&sId=1204&
发生这种情况是因为您的回复类型 bytes 不是字符串。你需要解码它,像这样的东西应该可以工作:
message = str(message.value, encoding='utf-8')
print(message)
做:
message.value.decode('utf-8')