我是编程和Python的新手,所以请耐心等待。我有一个字符串是Base64,我想将其转换为十进制。字符串可以作为任何值进入脚本,例如zAvIAQ。此值表示转换为十进制时的IP地址204.11.200.1。我想要做的是将Base64字符串转换为十进制并将其分配给一个变量,以便我可以在脚本的其他地方使用它。
我试过使用base64.decode函数,但这只是给我一个非常奇怪的文本输出。我试过使用Decimal()函数,但这给了我一个错误。经过几天的搜索,我找不到办法,至少没有一个我能理解的方法。您可以提供任何帮助,我们将不胜感激。
发布于 2019-05-28 13:40:26
>>> address=[ord(c) for c in base64.b64decode('zAvIAQ==')]
>>> address
[204, 11, 200, 1]
发布于 2019-05-28 14:59:59
我经常使用base64.b64decode()
。有了这个你得到:
In [18]: base64.b64decode('zAvIAQ==')
Out[18]: '\xcc\x0b\xc8\x01'
这可能是你指的怪异输出。关键是你得到一个字节串,每个字节代表一个0到255之间的值。这些值可能不可打印,因此是\ x表示。
但是,如您所知,这些是IPv4地址的桶,您可以通过它们将它们转换为小数,例如使用生成器表达式:
[ord(c) for c in ...]
你得到更熟悉的表示204,11,200,1。
https://stackoverflow.com/questions/-100006835
复制相似问题