我得到這個奇怪的問題,同時加載一個yaml文件與地址轉換爲數字的mac地址。pyyaml將mac地址轉換爲編號
>>> yaml.safe_load('abc: 11:00:00:00:00:00')
{'abc': 8553600000}
>>> yaml.safe_load('abc: 99:00:00:00:00:00')
{'abc': 76982400000}
但後來我嘗試了以下,我得到的答案如預期。
>>> yaml.safe_load('abc: ff:00:00:00:00:00')
{'abc': 'ff:00:00:00:00:00'}
我知道解決方案,這是有引號內的MAC地址,但我想知道這種行爲的原因。
有趣的是,我用ruby嘗試了相同的數據,得到了類似的結果。
EDIT
添加其中它與只有數字
>>> yaml.load('abc: 52:00:00:60:00:00')
{'abc': '52:00:00:60:00:00'}
'ruamel.yaml'如果您的YAML文檔以'%YAML 1.1'開頭或者將該版本指定爲'safe_load'的參數,則會加載sexagecimals,所以程序包沒有擺脫它們。 Sexagesimals不在1.2中,這是ruamel.yaml默認的,它還支持其他1.2特性,例如八進制的'0o'。 (免責聲明:我是你所指的「他們」)。 – Anthon
@Anthon:我的意思是說在YAML 1.2中沒有sexagecimals,沒有包的c –