sqlalchemy / psycopg2将我的jsons视为dicts,但不保留顺序

时间:2017-08-06 10:14:47

标签: json sqlalchemy psycopg2

我有一个返回json对象的psql查询。我用results.fetchall()获取此查询,并将json正确地作为dict。 然而,正如我在python 3.4中,还没有在3.6中,对象'命令不会保留在字典中。我看到a way使用OrderedDict来保持json的顺序,但我不知道如何告诉sqlalchemy / psycopg2使用它。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

documentation所示,您必须在创建引擎时提供自定义反序列化器:

from functools import partial
import json, collections

engine = create_engine(
    ...,
    json_deserializer=partial(
        json.loads, 
        object_pairs_hook=collections.OrderedDict),
    )