如何从python客户端向kafka发送JSON对象

如何从python客户端向kafka发送JSON对象,python,json,apache-kafka,kafka-python,Python,Json,Apache Kafka,Kafka Python,我有一个简单的JSON对象,如下所示 d = { 'tag ': 'blah', 'name' : 'sam', 'score': {'row1': 100, 'row2': 200 } } 下面是我向卡夫卡发送消息的python代码 from kafka import SimpleProducer, KafkaClient import json # To send messages synchronously kafka = KafkaClien

我有一个简单的JSON对象,如下所示

d = { 'tag ': 'blah',
  'name' : 'sam',
  'score': 
    {'row1': 100,
      'row2': 200
     }
}
下面是我向卡夫卡发送消息的python代码

from kafka import SimpleProducer, KafkaClient
import json 

# To send messages synchronously
kafka = KafkaClient('10.20.30.12:9092')
producer = SimpleProducer(kafka)
jd = json.dumps(d)
producer.send_messages(b'message1',jd)
我在风暴日志中看到,消息正在被接收,但它正在抛出 元组{json结构在此处}的转换为null
不确定需要做什么才能修复此问题?。

以下是我为《卡夫卡制片人》编写的代码。我唯一不同的做法是使用
yaml.safe\u load
加载json内容。它以字符串而不是unicode返回内容。下面是代码片段

with open('smaller_test_prod.txt') as f:
    for line in f:
        d = yaml.safe_load(line)
        jd = json.dumps(d)
        producer.send_messages(b'zeus_metrics',jd)

在这里,每一行都是存储在文件中的json数据

Kafka需要以字节为单位的值

b`some json message`
这是我的简单卡夫卡制作者,它将消息发送到卡夫卡服务器

import json
from bson import json_util

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='localhost:9092')

for i in range(10):
    data = { 'tag ': 'blah',
        'name' : 'sam',
        'index' : i,
        'score': 
            {'row1': 100,
             'row2': 200
        }
    }   
    producer.send('orders', json.dumps(data, default=json_util.default).encode('utf-8'))

此处,json.dumps()将json转换为字符串,encode('utf-8')将字符串转换为字节数组。

请尝试producer.send_消息(b'message1',d),该消息不起作用。d将是一本字典。我需要把它转换成字符串或字节你说的“为元组抛出转换null”是什么意思?不管我解决了这个问题。我将很快发布解决方案。@Rahul你能发布解决方案吗。。。。我需要向kafka发送JSON对象。为什么要使用YAML解析JSON?希望我能否决这个。如果字符串不是
producer.send('orders',json.dumps(data,default=json\u util.default).encode('utf-8'))
(“d”应该是“data”)