如何加载YAML文件并将其转换为Python JSON对象?
我的YAML文件看起来像这样:
Section:
heading: Heading 1
font:
name: Times New Roman
size: 22
color_theme: ACCENT_2
SubSection:
heading: Heading 3
font:
name: Times New Roman
size: 15
color_theme: ACCENT_2
Paragraph:
font:
name: Times New Roman
size: 11
color_theme: ACCENT_2
Table:
style: MediumGrid3-Accent2
5条答案
按热度按时间ovfsdjhp1#
PyYAML库就是为此而设计的
注意:PyYAML只支持2009年之前的YAML 1.1规范。
如果需要YAML 1.2,则可以选择ruamel.yaml。
5ktev3wc2#
您可以使用PyYAML
在ipython控制台中:
abithluo3#
没有Python JSON对象这样的东西,JSON是一种语言独立的文件格式,它起源于JavaScript,并被许多语言支持。
如果您的YAML文档遵循旧的1.1标准,即2009年之前的版本,则可以按照其他一些答案的建议使用PyYAML。
如果它使用较新的YAML 1.2规范(该规范使YAML成为JSON的超集),则应使用
ruamel.yaml
(免责声明:我是那个包的作者,它是PyYAML的一个分支)。其生成
output.json
:ruamel.yaml
除了支持YAML 1.2之外,还修复了许多PyYAML错误。您还应该注意,如果您不能始终完全控制输入,PyYAML的load()
也被证明是不安全的。PyYAML还将标量数字021
作为整数17
加载,而不是21
和converts scalar strings likeon
,yes
,off
to boolean值加载(分别为True
、True
和False
)。bvn4nwqk4#
在python3中,你可以使用pyyaml。
然后加载yaml文件并将其转储到json中:
输出:
gkn4icbw5#
不管怎样,下面是一个基于ruamel.yaml的shell别名,它可以充当过滤器:
用法: