使用python将十六进制转储到YAML中

mad*_*mer 2 python hex yaml dump

现在我正在倾倒到YAML文档中.它在大多数情况下应该正常工作.当我尝试转储像"0x2A"这样的十六进制时,它会转换为42.是否有任何方法可以保持它的十六进制格式?一个字符串不会悲伤地工作.而int(0x2A,16)也只给了我42.

Gus*_*yer 10

这应该这样做:

>>> import yaml
>>> class HexInt(int): pass
... 
>>> def representer(dumper, data):
...     return yaml.ScalarNode('tag:yaml.org,2002:int', hex(data))
... 
>>> yaml.add_representer(HexInt, representer)
>>> yaml.dump({"n": HexInt(42)})
'{n: 0x2a}\n'
Run Code Online (Sandbox Code Playgroud)