将数组追加到json python

将数组追加到json python,python,arrays,json,Python,Arrays,Json,我在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"

我在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":[] } }'
有没有简单的方法可以附加数组,而不必将它们转换为字符串并作为纯文本插入


提前感谢,

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

请注意,我必须编辑您的JSON以使其有效。(“网关”缺少包含的双引号。)


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))
返回:

{
  "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"
  }
}

使用json库?ol'painfull
{
  "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"
  }
}