¿Cómo enviar la carga JSON a RabbitMQ utilizando el complemento web?

Tengo una instancia de RabbitMQ 3.4.2 con un complemento de administración web instalado.

Cuando paso al mensaje {'operationId': 194} a la cola usando el paquete de la cola kombu de Python, el mensaje se lee en el otro extremo como un diccionario.

Sin embargo, cuando envío el mensaje utilizando la consola web:

introduzca la descripción de la imagen aquí

Me sale el siguiente error en el extremo receptor:

 operation_id = payload['operationId'] TypeError: string indices must be integers 

He intentado agregar un encabezado y propiedad de content-type , sin éxito.

Dado que el código del lector es el mismo, significa que el remitente web no marca el mensaje enviado como una carga de JSON / diccionario y, por lo tanto, se lee como una cadena en el otro extremo.

¿Alguna idea de cómo marcar un mensaje como mensaje JSON utilizando la consola web de RabbitMQ?

Tuve que usar content_type lugar de content-type (un guión bajo en lugar de un guión).

Esta es una decisión de diseño bastante cuestionable, porque el estándar que todos conocen es content-type .

introduzca la descripción de la imagen aquí

Es necesario des-serializar la salida.

 import json payload = json.loads(payload) operation_id = payload['operationId'] 

Además, {'operationId': 194} no es JSON válido. Aunque parece que usa comillas dobles en la captura de pantalla, asegúrese de reemplazar las comillas simples con comillas dobles.

Edit: Así que tienes razón, Kombu debería manejar esto. Mirando el código es probable que el encabezado distingue entre mayúsculas y minúsculas. Cambie el encabezado de propiedades de Content-Type de content-type a Content-Type de content-type .