使用sqlalchemy

时间:2019-05-15 14:38:18

标签: python postgresql sqlalchemy hstore

我有一个csv文件,其中的一列以hstore格式编写。我想将其转换为python dict,但同时保持代码干燥。我的代码库使用sqlalchemy,它具有在https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/hstore.py#L390中定义的_parse_hstore函数。我试图这样导入它:

import sqlalchemy.dialects.postgresql.hstore as hstore

但是不幸的是,上游模块(sqlalchemy.dialects.postgresql)用一个对象https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/init.py#L53遮盖了hstore模块

是否仍然可以通过某种方式导入模块?即使函数相对简单,我也不希望将函数代码直接复制到我的代码库中。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用函数HSTORE.result_processorfrom sqlalchemy.dialects.postgresql import HSTORE),该函数包装了私有_parse_hstore函数。

>>> h = sqlalchemy.dialects.postgresql.HSTORE()
>>> f = h.result_processor(None, None)
>>> f('"a"=>"1"')
{'a': '1'}

摘录到@lbolla的片段。