我有一个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模块
是否仍然可以通过某种方式导入模块?即使函数相对简单,我也不希望将函数代码直接复制到我的代码库中。
答案 0 :(得分:1)
您可以尝试使用函数HSTORE.result_processor
(from sqlalchemy.dialects.postgresql import HSTORE
),该函数包装了私有_parse_hstore
函数。
>>> h = sqlalchemy.dialects.postgresql.HSTORE()
>>> f = h.result_processor(None, None)
>>> f('"a"=>"1"')
{'a': '1'}
摘录到@lbolla的片段。