它看起来像pyyaml实现YAML 1.1 spec,这让很多不同的价值观的一部分被解释为真或假:有没有什么方法可以覆盖pyyaml自由处理布尔值?
规范:
y|n
正则表达式:
y|Y|yes|Yes|YES|n|N|no|No|NO
|true|True|TRUE|false|False|FALSE
|on|On|ON|off|Off|OFF`
>>> for k in "y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF".split("|"):
... print k, yaml.safe_load(k)
...
y y
Y Y
yes True
Yes True
YES True
n n
N N
no False
No False
NO False
true True
True True
TRUE True
false False
False False
FALSE False
on True
On True
ON True
off False
Off False
OFF False
然而它将它们序列化为true
或false
(相比之下,与YAML 1.1的规范y
和n
):
>>> yaml.safe_dump(dict(x=True, y=False))
'{x: true, y: false}\n'
有什么办法来覆盖它,以便只有规范true
和false
值被解释为布尔值?
谢谢,这真的有帮助 –