Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kafka以字符串形式发送值:我如何反序列化它并用Python将其转换为JSON对象_Python_Json_Apache Kafka_Aws Lambda_Aws Msk - Fatal编程技术网

Kafka以字符串形式发送值:我如何反序列化它并用Python将其转换为JSON对象

Kafka以字符串形式发送值:我如何反序列化它并用Python将其转换为JSON对象,python,json,apache-kafka,aws-lambda,aws-msk,Python,Json,Apache Kafka,Aws Lambda,Aws Msk,我试图从lambda函数中使用MSK(托管Amazon Kafka服务)消息-MSK是我的lambda的触发器 制作人看起来像这样: data = {'time': 1611215510000000000, 'tags': {'tag1': 'tagvalue'}, 'fields': {'value': 12345}} self.producer = KafkaProducer( security_protocol=self.security_protocol,

我试图从lambda函数中使用MSK(托管Amazon Kafka服务)消息-MSK是我的lambda的触发器

制作人看起来像这样:

data = {'time': 1611215510000000000, 'tags': {'tag1': 'tagvalue'}, 'fields': {'value': 12345}}
self.producer = KafkaProducer(
            security_protocol=self.security_protocol,
            bootstrap_servers=self.kafka_servers,
            value_serializer=lambda x: dumps(x).encode('utf-8'))
self.producer.send(kafka_topic, value=data)
在lambda函数中,我收到以下信息:

{
   "eventSource":"aws:kafka",
   "eventSourceArn":"<arn....>",
   "bootstrapServers":"<serverlist...>",
   "records":{
      "topic-0":[
         {
            "topic":"topic",
            "partition":0,
            "offset":0,
            "timestamp":1611138328871,
            "timestampType":"CREATE_TIME",
            "value":"eyJ0aW1lIjogMTYxMTEzODI4MDAwMDAwMDAwMCwgInRhZ3MiOiB7InN0YXR1cyI6ICJHb29kIn0sICJmaWVsZHMiOiB7InZhbHVlX251bSI6IDAuMCwgInZhbHVlIjogZmFsc2V9fQ=="
         },
         {
            "topic":"topic",
            "partition":0,
            "offset":1,
            "timestamp":1611138330033,
            "timestampType":"CREATE_TIME",
            "value":"eyJ0aW1lIjogMTYxMTEzODI4MDAwMDAwMDAwMCwgInRhZ3MiOiB7InN0YXR1cyI6ICJHb29kIn0sICJmaWVsZHMiOiB7InZhbHVlIjogMTQxMzUuMH19"
         }
    ]
  }
}

值字符串似乎是base64编码的,因此需要找到一种方法对其进行解码。然后你可以加载它们

使用以下方法解码的第一个字符串:

records = event['records']['topic-0']
for record in records:
    print(json.loads(record['value']).decode('utf-8'))
{"time": 1611138280000000000, "tags": {"status": "Good"}, "fields": {"value_num": 0.0, "value": false}}