我有这样的对象。
{
"id": 1,
"name": "size",
"values": [
{
"id": 2,
"name": "m",
},
{
"id": 3,
"name": "l",
}
]
}
我需要在值中添加一些query
。所以我创建了困难的查询
q = (sqla.session.query(models.ProductAttribute)
.filter(models.ProductAttribute.id == id_attr)
.join(models.ProductAttributeValue,
and_(models.ProductAttributeValue.id.notin_(rm_pr_a_v_ids),
models.ProductAttributeValue.product_attribute_id == id_attr
))
.filter(models.ProductAttributeValue.distributor_id == g.account.distributor_id or
models.ProductAttributeValue.distributor_id.is_(None))
.options(contains_eager(models.ProductAttribute.values))
).all()
一切正常,但我遇到了一个问题,我的json
现在看起来像这样
[// array - no need for me
{
"id": 1,
"name": "size",
"values": [
{
"id": 2,
"name": "m",
},
{
"id": 3,
"name": "l",
}
]
}
]
但是如果我使用.first()
而不是.all
,则我有这样的json
{
"id": 1,
"name": "size",
"values": [
{
"id": 2,
"name": "m",
}
// in this place i have only one value (
]
}
所以我需要像这样制作json
{
"id": 1,
"name": "size",
"values": [
{
"id": 2,
"name": "m",
},
{
"id": 3,
"name": "l",
}
]
}