我使用this回答中的OrderedLoader。保持文件的顺序很有效但我的YAML有一些十六进制字段,如:
fieldA:
subA: foo
subB: 0xff00
subC: 0x00aa
在加载时转换为int字段:
('fieldA', OrderedDict([('subA', 'foo'), ('subB', 65280), ('subC', 170)
然后转储如:
fieldA:
subA: foo
subB: 65280
subC: 170
有人如何防止这种情况发生?我用safe_dump BaseLoader处理了一段时间,等等没有运气。
谢谢!
答案 0 :(得分:0)
我最后通过在原始YAML文件中用引号括起十六进制数字来结束:
fieldA:
subA: foo
subB: '0xff00'
subC: '0x00aa'
现在PyYAML并没有尝试转换它们。
谢谢!