У меня проблема с выводом Marshmallow, из-за чего результат JSON:
[
[
{
"data":[
{
"x":"2018-04-03 23:28:31.539895",
"y":15.937
}
],
"sensor":"/sys/bus/w1/devices/28-0000077aae57/w1_slave"
},
],
{
}
]
Но я хочу, чтобы это выглядело так:
[
{
"data":[
{
"x":"2018-04-03 23:37:40.612334",
"y":16.187
}
],
"sensor":"/sys/bus/w1/devices/28-0000077aae57/w1_slave"
}
]
У меня есть функция get_line
, которая возвращает курсор Pymongo:
>>> get_line()
<pymongo.cursor.Cursor object at 0x109162208>
Затем я определяю свои схемы зефира:
from marshmallow import Schema, fields
class PointSchema(Schema):
x = fields.String()
y = fields.String()
class LineSchema(Schema):
sensor = fields.String()
data = fields.List(fields.Nested(PointSchema))
Я использую следующий код в моей конечной точке колбы, чтобы вернуть данные клиенту:
result = get_line()
output = []
for line in result:
output.append({'sensor':line['name'], 'data': get_line(line['name'])})
return jsonify(LineSchema(many=True).dump(output))
Я также пытался заменить LineSchema
на:
class LineSchema(Schema):
sensor = fields.String()
data = fields.Nested(PointSchema, many=True)
, что приводит к точно такому же выводу JSON. Как я должен обрабатывать это для достижения желаемого JSON? Я срываю с этого волосы, но хочу избежать изменения кода клиента, чтобы приспособиться.