我有一个YAML文件,其中的数据包含字符串和整数。当加载YAML文件并生成字典时,YAML“智能地”将未加引号的整数作为int类型。有什么简单的方法可以让YAML将所有内容都视为字符串,而无需在所有整数周围加上双引号?
这是YAML文件的一部分:
devices:
rtr1:
reachable: True
instances: [Region-58,]
system_id: 0101.8800.0008
level: Level-2
isis_lsps:
- lsp_id: RTR1CA22CWP.00-00
instance: Region-58
prot_supported: "IPv4, IPv6"
hostname: RTR1CA22CWP
te_router_id: 10.1.0.8
extended_reach:
- ext_reach_id: 0101.8890.0207.00
metric: 10
adm_group: 0x601
local_int_ip: 10.14.2.21
remote_int_ip: 10.14.2.20
max_bw: 400000
max_reserve_bw: 380000
te_metric: 10
使用yaml_load后,数字的类型为“ int”。
例如,指标:10
无论如何,yaml_load是否将数字10当作字符串,而不必在其周围加上双引号。
答案 0 :(得分:2)
您可以像这样将Loader
参数传递给yaml.load()
:
yaml.load(yaml, Loader=yaml.BaseLoader)
这将禁用自动值转换,因为BaseLoader
“不解析或不支持任何标签,而仅构造基本的Python对象:列表,字典和Unicode字符串。” -请参阅下面的参考