flask-restplus - модель наследования и порядок полей json - PullRequest
0 голосов
/ 08 ноября 2018

Я определил 2 модели в своем приложении flask-restplus.

some_model = ns.model('SomeModel', {
    'a': fields.String,
    'b': fields.String,
    'c': fields.String
})

some_model_expanded = ns.inherit('SomeModelExpanded', some_model, {
    'd': fields.String,
    'e': fields.String,
})

Теперь, когда маршалинг ответа API с some_model_expanded, я получил это в формате JSON

{
    "d": "...",
    "e": "...",
    "a": "...",
    "b": "...",
    "c": "..."
}

Можно ли изменить порядок полей следующим образом?

{
    "a": "...",
    "b": "...",
    "c": "...",
    "d": "...",
    "e": "...",
}

Ответы [ 2 ]

0 голосов
/ 08 июня 2019

Да. Вы можете использовать Упорядоченный словарь при определении вашей модели.

some_model = ns.model('SomeModel', 
    OrderedDict(
    'a': fields.String,
    'b': fields.String,
    'c': fields.String
    ))
0 голосов
/ 20 ноября 2018

Вы найдете ответ здесь . Но вкратце:

Как Python dict (до Python 3.7), так и объект JSON неупорядочены коллекции.

Существуют обходные пути для их заказа, но я не думаю, что стоит полагаться на порядок элементов в объекте JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...