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


问题内容

现在,我将转储到YAML文档中。在大多数情况下,它都可以正常工作。当我尝试转储十六进制(例如“
0x2A”)时,它将转换为42。是否没有任何方法可以保持其十六进制格式?字符串不会令人悲伤。而int(0x2A,16)也给了我42分。


问题答案:

您可能正在寻找hex(0x2a) == hex(42) == '0x2a'

除非您正在寻找一种方法来说服现有的转储函数使用十六进制而不是十进制表示法…


在下面回答您的评论,如果问题是您想要十六进制数字使用大写字母(而则使用小写字母0x),则必须使用字符串格式。您可以选择以下之一:

"0x%02X" % 42                     # the old way
"0x{:02X}".format(42) == "0x2A"   # the new way

在这两种情况下,您都必须0x显式打印,然后大写至少两个数字的十六进制数字,如果您的数字只有一位数字,则在左边加零。02X与C一样,用格式表示printf