python - 使用 sqlalchemy 在 python3 中解析 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
) 用一个对象隐藏了 hstore 模块:https : //github.com/sqlalchemy/sqlalchemy/blob/master/lib/sqlalchemy/dialects/postgresql/init .py#L53
是否仍然可以以某种方式导入模块?即使函数相对简单,我也不希望将函数代码直接复制到我的代码库中。
解决方案
您可以尝试使用作为私有函数包装器的函数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。
推荐阅读
- excel - 获取系统的日期分隔符
- javascript - 未捕获的类型错误:无法读取 null 的属性“getTracks”
- c++ - WPEWebkit 与其他进程的交互
- sql-server - 在 SQL Server 中,您可以根据另一列中的值动态屏蔽一列中的某些数据吗?
- flutter - build-runner 的 Flutter-moor 生成器问题
- c# - 通过循环遍历 webform 上的 DataTable 生成动态 HTML 表格
- javascript - 在隐藏传单地图时使用传单图像
- android - 使用 viewModel 处理屏幕旋转而不丢失数据 - Android
- javascript - 过滤两个敲除数组以找出差异
- java - 在第一次单击 JavaFX 时突出显示 TextField 中的所有文本