我正在使用 Python 和 Zookeeper,因为我在 Python 中使用 kazoo 库。这个问题与 Zookeeper 或 kazoo 库无关。我想这主要与Python有关。
以下是我的两个变量 -
new_error_str = "Error occurred on machine %s in datacenter %s on the %s of process %s" % (host_info, local_dc, step, process_name)
new_error_key = "error_%s" % (timestamp_in_ms)
现在我需要使用这两个变量来创建一个字节 json 字符串,然后将该 json 字符串作为 Zookeeper 节点中的数据写入,所以下面是我们创建节点并写入数据的语法 -
zk.create(date_znode_path, b'{"'+new_error_key+'":"' + new_error_str + '"}', None, True)
不知何故,上面的行抛出了一个异常——
TypeError: value must be a byte string
任何想法我在这里做错了什么?我正在尝试制作上述变量的 JSON 字符串。
这是有关kazoo 库的详细信息
更新:-
如果我使用这种语法,那么它工作正常 -
b'{"hostname":"' + get_hostname() + '"}', None, True)
我可以看到这样的数据 -
{"hostname":"machineA"}