向json python追加数组

2024-10-01 13:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python3上处理JSON,我想在JSON对象中追加一个数组,这是我目前为止的代码:

values = [20.8, 21.2, 22.4] 
timeStamps = ["2013/25/11 12:23:20", "2013/25/11 12:25:20", "2013/25/11 12:28:20"] 

myJSON = '{ Gateway: {"serial":"1001", "status":"ok"},
 "Tag":{"TID":"FF01", "EPC":"EE01"},
 "dataset":{"sensorType":"temperature", "values":[], "timeStamps":[] } }'

有没有什么简单的方法可以附加数组而不必将它们转换为字符串并作为纯文本插入?在

提前谢谢你


Tags: 对象代码jsontagstatusserialok数组
3条回答

Python通过json模块包含SimpleJSON。使用它从JSON字符串和python dict序列化/反序列化:

myJSON_d = json.loads(myJSON)

myJSON_d.['DataSet'].update({'values': values, 'timeStamps': timeStamps})

myJSON = json.dumps(myJSON_d)

看起来你也在尝试构造json。在这种情况下,您应该这样做:

import json

values = [20.8, 21.2, 22.4] 
timeStamps = ["2013/25/11 12:23:20", "2013/25/11 12:25:20", "2013/25/11 12:28:20"] 

d = dict(Gateway= dict(serial="1001", status="ok"),
     Tag= dict(TID="FF01", EPC= "EE01"),
     DataSet= dict(sensorType="temperature",values=values,timeStamps=timeStamps))

print(json.dumps(d,indent =2))

退货:

^{pr2}$

您可以使用json.loads解析JSON,执行操作,然后通过json.dumps转换回JSON。在

请注意,我必须编辑您的JSON以使其有效。(“Gateway”缺少括起来的双引号。)

import json

values = [20.8, 21.2, 22.4] 
timeStamps = ["2013/25/11 12:23:20", "2013/25/11 12:25:20", "2013/25/11 12:28:20"] 

myJSON = '{ "Gateway": {"serial":"1001", "status":"ok"}, "Tag":{"TID":"FF01", "EPC":"EE01"}, "DataSet":{"sensorType":"temperature", "values":[], "timeStamps":[] } }'

o = json.loads(myJSON)
o["DataSet"]["values"] = values
o["DataSet"]["timeStamps"] = timeStamps

newJSON = json.dumps(o)

print(newJSON)

# Output:
# {"Gateway": {"serial": "1001", "status": "ok"}, "Tag": {"TID": "FF01", "EPC": "EE01"}, "DataSet": {"sensorType": "temperature", "values": [20.8, 21.2, 22.4], "timeStamps": ["2013/25/11 12:23:20", "2013/25/11 12:25:20", "2013/25/11 12:28:20"]}}

相关问题 更多 >