[我正在尝试编写python脚本来分析包含块文字中包含markdown的yaml文件。
简单的python脚本:
import yaml
file = open('single-source.yaml')
documentation = yaml.load(file, Loader=yaml.FullLoader)
print(documentation)
例如在解析简单的Yaml文件时效果很好
---
product name: Azure big VM
product version: 1.0.0
Operating System: RHEL
disk type: premium ssd
location: uk-south
但是,当我尝试使用YAML文件使用管道来逃避markdown块时(如用例所需要的那样,例如:
]---
product name: | Azure big VM
product version: 1.0.0
Operating System: RHEL
disk type: premium ssd
location: uk-south
它开始引发大量的引用错误,指向python目录中的pyyaml文件,如下所示。它为/ yaml目录中的各种文件吐出了大约8个。
File "script.py", line 5, in <module>
documentation = yaml.load(file, Loader=yaml.FullLoader) File "C:\Users\Ryan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\yaml\__init__.py", line 114, in load
return loader.get_single_data()
有人可以提供任何建议或解决方法吗?
正如您自己说的那样,块标量必须为indented。所以这是正确的语法:
---
product name: |
Azure big VM
product version: 1.0.0
Operating System: RHEL
disk type: premium ssd
location: uk-south
标题中不能包含内容。您可能需要使用|-
而不是|
来修剪尾随的换行符。