用python编写嵌套json

用python编写嵌套json,python,sql,arrays,json,Python,Sql,Arrays,Json,我在尝试从服务器构建JSON响应时遇到问题 我想得到一个JSON对象,它包含我从SQL查询中得到的其他JSON对象,这样我就能够通过我的websocket服务器发送包含JSON的内容 直到现在,我都试过这样的方法: def screenColor(self,ne_Lat, ne_Lng, sw_lat, sw_Lng): data={} allData=[] for rec in self.c.execute('''SELECT * FROM squares WH

我在尝试从服务器构建JSON响应时遇到问题

我想得到一个JSON对象,它包含我从SQL查询中得到的其他JSON对象,这样我就能够通过我的websocket服务器发送包含JSON的内容

直到现在,我都试过这样的方法:

    def screenColor(self,ne_Lat, ne_Lng, sw_lat, sw_Lng):
    data={}
    allData=[]
    for rec in self.c.execute('''SELECT * FROM squares WHERE ((lat BETWEEN ? AND ?) AND (long BETWEEN ? AND ?)) ''',(sw_lat, ne_Lat, sw_Lng, ne_Lng)):
          data['color']=rec[3]
          data['lat']=rec[1]
          data['lng']=rec[2]
          json_data=json.dumps(data)
          allData.append(json_data)
    return allData
当我打印返回值时,我得到:

['{"color": 85, "lat": 31.776879500000156, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.778179500000157, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.779479500000157, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.780779500000158, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.782079500000158, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.78337950000016, "lng": 35.21187200000153}', '{"color": 26, "lat": 31.78467950000016, "lng": 35.21187200000153}', '{"color": 28, "lat": 31.78597950000016, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.78727950000016, "lng": 35.21187200000153}', '{"color": 85, "lat": 31.776879500000156, "lng": 35.21367200000153}', '{"color": 28, "lat": 31.778179500000157, "lng": 35.21367200000153}', '{"color": 85, "lat": 31.779479500000157, "lng": 35.21367200000153}', '{"color": 26, "lat": 31.780779500000158, "lng": 35.21367200000153}', '{"color": 26, "lat": 31.782079500000158, "lng": 35.21367200000153}', '{"color": 26, "lat": 31.78337950000016, "lng": 35.21367200000153}', '{"color": 85, "lat": 31.78467950000016, "lng": 35.21367200000153}
有没有办法将此数组作为JSON对象获取?那已经是JSON对象了吗


多谢各位

您应该尝试以下操作:

def screenColor(self,ne_Lat, ne_Lng, sw_lat, sw_Lng):

    allData=[]
    for rec in self.c.execute('''SELECT * FROM squares WHERE ((lat BETWEEN ? AND ?) AND (long BETWEEN ? AND ?)) ''',(sw_lat, ne_Lat, sw_Lng, ne_Lng)):
          data = {}
          data['color']=rec[3]
          data['lat']=rec[1]
          data['lng']=rec[2]

          allData.append(data)
    return json.dumps(allData)

否则,如果您在循环之外定义字典数据,我想每次迭代都会覆盖它…

生成嵌套对象和json.dumps当前您有一个json格式的字符串列表,您只需将数据dicts添加为dicts,而不是作为json添加到allData,然后在最后执行json.dumps allData