У меня есть приложение flask_restful, использующее flask_sqlalchemy, которое получает данные из двух таблиц, связанных внешним ключом, и разделяет отношение «один ко многим». Родительская таблица содержит записи, а подчиненная таблица содержит версии этих записей. Используя flask_marshmallow, я возвращаю данные в довольно приличной форме, которая выглядит примерно так:
[
{
"currentVersion": null,
"geometryOutputId": 251,
"someInfo": "blah",
"versions":[
{
"version": 1,
"versionId": 223,
"filePath": "path1"
},
{
"version": 2,
"versionId": 224,
"filePath": "path2"
}
]
}
]
Таблица с одной стороны отношения один ко многим содержит данные currentVersion
, geometryOutputId
и someInfo
. И по многим сторонам у нас есть version
, versionId
и filePath
. Проблема в том, что я хочу, чтобы пользователь мог легко получить доступ к версии, что не может быть легко сделано с помощью приведенного выше JSON. Вам придется перебирать все версии в поисках нужной. Что мне действительно нравится, так это что-то вроде
[
{
"currentVersion": null,
"geometryOutputId": 251,
"someInfo": "blah",
"versions" : {
"1" : {
"versionId": 223,
"filePath": "path1"
},
"2": {
"versionId": 224,
"filePath": "path2"
}
}
}
]
, чтобы пользователь мог написать что-то вроде jsonObject[0]['versions']['2']
, чтобы получить доступ к информации для версии 2. Я немного осмотрелся и Я не могу найти ничего, что решает такую проблему, одна из главных проблем заключается в том, что для этого требуется, чтобы значение в паре ключ-значение было преобразовано в ключ. Т.е. "version": 1
становится "versions": { "1": {...} }
Если у кого-нибудь были какие-либо идеи о том, как справиться с этим? Либо в «Зефире», либо в другом инструменте.