Ну, я могу преобразовать OrderedDict в json.dump
и загрузить его в json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode
Но как автоматически обработать столбец JSON в OrderedDict в SqlAlchemy?
см .: Могу ли я получить JSON для загрузки в OrderedDict?
см .: Форматировать значения db.Datetime автоматически в Flask-SQLAlchemy
Вот пример кода:
from sqlalchemy import func, types
from collections import OrderedDict
class OrderedJson(types.TypeDecorator):
impl = types.JSON
def process_result_value(self, value, dialect):
if isinstance(value, str):
return json.JSONDecoder(object_pairs_hook=OrderedDict).decode(str)
elif isinstance(value, dict) and not isinstace(value, OrderedDict):
return OrderedDict(sorted(value.items()))
return value