![](/img/trans.png)
[英]PyYAML error: Could not determine a constructor for the tag '!vault'
[英]PyYAML ConstructError: could not determine a constructor for the tag
我有幾個使用Python 2.7用PyYAML構造的類。 但是只有下面定義的類會失敗:
ConstructorError: could not determine a constructor for the tag
'!ClassifyTransform'
in "<unicode string>", line 1, column 5:
--- !ClassifyTransform
^
YAML字符串如下:
self.yamlconfig = dedent(u'''\
--- !ClassifyTransform
file_with_path: '/../../testdata/classify.csv'
skip_header_lines: 1
duplicates: []
outtype: 'dataframe'
client: 'test'
classifycolumn: [
{ newcolumn: 'audit_status',
conditions: [['', 'Status', '==', {scalar: 'F', column: None}], ['&', 'STATUS', '==', {scalar: 'C', column: None}]],
value: [['', {scalar: 'Filled', column: None}]]
},
{ newcolumn: 'audit_status',
conditions: [['', 'Status', '%NA', {scalar: '', column: None}], ['&', 'STATUS', '==', {scalar: 'C', column: None}]],
value: [['', {scalar: 'Filled - Order Missing', column: None}], ['+', {scalar: '', column: None}]]
}
]
''')
與其他所有類一樣,我對構造函數使用相同的模式:
def transform_constructor(loader, node):
instance = ClassifyTransform.__new__(ClassifyTransform)
yield instance
state = loader.construct_mapping(node, deep=True)
instance.__init__(**state)
yaml.add_constructor(yaml_tag, transform_constructor)
我無法確定yamlconfig有什么問題。
我在實驗中發現我已經使用了此導入
import ruamel.yaml as yaml
在我的班級中,在測試用例中導入yaml,這並不奇怪。
pip3 instal PyYAML==3.13
所需的最新版本的PyYAML。 新版本支持它並穩定
對於python 2.7,也需要類似的最新升級版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.