парсинг hstore в python3 с использованием sqlalchemy - PullRequest
1 голос
/ 15 мая 2019

У меня есть CSV-файл, в котором один из столбцов записан в формате hstore. Я хотел бы преобразовать его в python dict, но в то же время оставить мой код СУХИМ. Моя кодовая база использует sqlalchemy, у которого есть функция _parse_hstore, определенная в https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/hstore.py#L390. Я попытался импортировать ее следующим образом:

import sqlalchemy.dialects.postgresql.hstore as hstore

Но, к сожалению, вышестоящий модуль (sqlalchemy.dialects.postgresql) затеняет модуль hstore объектом: https://github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/init.py#L53

Можно ли как-то импортировать модуль? Я бы предпочел не копировать код функции непосредственно в мою кодовую базу, даже если функция относительно проста.

1 Ответ

1 голос
/ 15 мая 2019

Вы можете попробовать использовать функцию 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.

...