我最近开始使用 Python,我正在尝试将我的 JSON 字符串之一与现有的 JSON 字符串连接起来。我也在使用 Zookeeper,所以当我使用 Python kazoo 库时,我从 zookeeper 节点获取现有的 json 字符串。
# gets the data from zookeeper
data, stat = zk.get(some_znode_path)
jsonStringA = data.decode("utf-8")
如果我打印jsonStringA
它会给我这样的 -
{"error_1395946244342":"valueA","error_1395952003":"valueB"}
但如果我这样做print json.loads(jsonString)
,它会像这样打印出来 -
{u'error_1395946244342': u'valueA', u'error_1395952003': u'valueB'}
这里jsonStringA
将有我现有的 JSON 字符串。现在我有另一个键值对需要添加到现有的jsonStringA
-
下面是我的 Python 代码 -
# gets the data from zookeeper
data, stat = zk.get(some_znode_path)
jsonStringA = data.decode("utf-8")
timestamp_in_ms = "error_"+str(int(round(time.time() * 1000)))
node = "/pp/tf/test/v1"
a,b,c,d = node.split("/")[1:]
host_info = "h1"
local_dc = "dc3"
step = "step2"
从zookeeper中提取后,我的现有jsonStringA
将是这样的-
{"error_1395946244342":"valueA","error_1395952003":"valueB"}
现在我需要将此键值对附加到jsonStringA
-
"timestamp_in_ms":"Error Occured on machine "+host_info+" in datacenter "+ local_dc +" on the "+ step +" of process "+ c +"
所以简而言之,我需要合并以下键值对 -
"error_1395952167":"Error Occured on machine h1 in datacenter dc3 on the step2 of process test"
所以最终的 JSON 字符串看起来像这样 -
{"error_1395946244342":"valueA","error_1395952003":"valueB","error_1395952167":"Error Occured on machine h1 in datacenter dc3 on the step2 of process test"}
这可能吗?