Python SqlAlchemy: как загрузить столбец JSON в OrderedDict? - PullRequest
0 голосов
/ 28 мая 2019

Ну, я могу преобразовать 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

...