我使用的是一个在一列中包含序列化值的Rails数据库。这些值应该是常规的Hash
,但由于不正确地清理参数,它们被存储为HashWithIndifferentAccess
或{
--- !ruby/object:ActionController::Parameters
parameters: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
windowHeight: 946
documentHeight: 3679
scrollTop: 500
permitted: false
我想用Python的yaml
实现来阅读本文,但是当我尝试这样做时,我得到:
所以,出于某种原因,它需要一个构造函数。但很明显,值本身只是一个普通字典。我怎么还能读呢?在
您可以使用PyYAML解析器的
add_constructor(loader, node)
函数,该函数允许您为它无法识别的对象类型实现自定义构造函数。在在该构造函数中,可以调用函数
loader.construct_pairs(node)
,以从原始节点内容获取键值元组。使用字典理解,我们可以创建原始词典。在由于条目是嵌套的,所以我们必须对这两种对象类型应用构造函数。在
一个完整的例子如下:
这是somehow documented,但是很难找到很多例子。在
相关问题 更多 >
编程相关推荐