[英]append an array to a json 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":[] } }'
有沒有簡單的方法來追加數組,而不必將其強制轉換為字符串並作為純文本插入?
提前致謝,
Python通過json
模塊包含SimpleJSON。 使用它從JSON字符串和python字典序列化/反序列化:
myJSON_d = json.loads(myJSON)
myJSON_d.['DataSet'].update({'values': values, 'timeStamps': timeStamps})
myJSON = json.dumps(myJSON_d)
您可以使用json.loads
解析JSON,進行操作,然后通過json.dumps
轉換回JSON。
請注意,我必須編輯您的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"]
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"]}}
看起來您也在嘗試構造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))
返回值:
{
"DataSet": {
"timeStamps": [
"2013/25/11 12:23:20",
"2013/25/11 12:25:20",
"2013/25/11 12:28:20"
],
"values": [
20.8,
21.2,
22.4
],
"sensorType": "temperature"
},
"Tag": {
"TID": "FF01",
"EPC": "EE01"
},
"Gateway": {
"serial": "1001",
"status": "ok"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.