[英]Is it possible to limit YAML bool value literal in python?
我正在使用 YAML 來描述一些配置,這些配置將由使用ruamel
的 Python 工具讀取。 問題是我需要大量使用字符串文字 ON 並且在 YAML 中沒有引號的 ON 將被視為 bool 值true
。 我必須仔細引用那些“ON”,否則該工具會引發意外結果。
可不可以告訴ruamel
只把true
和false
當作bool,而對於其他的關鍵字比如ON,是的,就把它們當作字符串字面量來處理,以減少出錯的機會? 對於這個用例,我認為我不必堅持 YAML 規范,因為配置文件被其他人處理的可能性很小。
我假設您使用的是ruamel.yaml
而不是 ruamel 中的其他一些包。 命名空間。 如果沒有一些代碼,很難看出你做錯了什么,但如果你使用默認加載器,你將獲得一個用於加載On
或on
的字符串。
import sys
import ruamel.yaml
yaml_str = """\
- True
- On
- on
"""
yaml = ruamel.yaml.YAML()
data = yaml.load(yaml_str)
print(data)
這使:
[True, 'On', 'on']
如果您的文檔有%YAML 1.1
指令,或設置yaml.version = (1, 1), then
On 將被讀取為 boolean:
import sys
import ruamel.yaml
yaml_str = """\
- True
- On
- on
"""
yaml = ruamel.yaml.YAML()
yaml.version = (1, 1)
data = yaml.load(yaml_str)
print(data)
這使:
[True, True, True]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.