我有一个YAML文件,其中包含未知数量的“图层”,因此当我将其加载到Python字典时,它将成为嵌套字典。
我不想在YAML文件中允许没有值的键。我想要:
yaml.load()
期间出现错误,或None
值。
import yaml
with open(input_path, "r") as yaml_file:
my_dict = yaml.load(yaml_file)
答案 0 :(得分:2)
您可以重新定义Parser
的{{1}}方法以引发错误:
process_empty_scalar
如果您将作业注释为import yaml
yaml_str = """\
- 1
- - 2
-
- 3
"""
def pes(*args, **kw):
raise NotImplementedError
yaml.parser.Parser.process_empty_scalar = pes
data = yaml.safe_load(yaml_str)
print(data)
,则上述错误会引发错误。
请注意:
.process_empty_scalar
dict
被记录为不安全且几乎保证不合适。