-4

I'm having a problem converting a string back to another string. (Actually a json object, but I'm thinking I'll first convert it into a string.) The string is in base64. ewogICJ0aW1lc3RhbXAiIDogMTYzOTI3OTE4MzMyMiwKICAicHJvZmlsZUlkIiA6ICI4NjY3YmE3MWI4NWE0MDA0YWY1NDQ1N2E5NzM0ZWVkNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdGV2ZSIsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82MGE1YmQwMTZiM2M5YTFiOTI3MmU0OTI5ZTMwODI3YTY3YmU0ZWJiMjE5MDE3YWRiYmM0YTRkMjJlYmQ1YjEiCiAgICB9LAogICAgIkNBUEUiIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzk1M2NhYzhiNzc5ZmU0MTM4M2U2NzVlZTJiODYwNzFhNzE2NThmMjE4MGY1NmZiY2U4YWEzMTVlYTcwZTJlZDYiCiAgICB9CiAgfQp9 would be one example of such a string. How do I convert this into something useful? I have tried using b = bytearray(a) and binascii.a2b_base64(), which seemed most promosing, however it resulted in a base64 number that looked like the product I wanted, just not as a string.

Does anyone know how to solve this?

Thanks in advance.

1 Answers1

-1

Just use the base64 module:

import base64
from pprint import pprint

s = "ewogICJ0aW1lc3RhbXAiIDogMTYzOTI3ODI3NTAwMSwKICAicHJvZmlsZUlkIiA6ICJjMzhjYzFhNWM2ZDU0M2Y1YThiMDkyNGNhMTAwZGVmZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJXaW5uaWVUaGVEYW1wb2VoIiwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzJkODhmMDA3ODZhOGNmYWMxOGVhODFkZjY4M2VkZDA2MGUzMGMwOWY2YzUxZjQyNWExNTc0M2Y3MjA2MWJiYWIiCiAgICB9CiAgfQp9"
decoded = base64.b64decode(s)
pprint(decoded)
(b'{\n  "timestamp" : 1639278275001,\n  "profileId" : "c38cc1a5c6d543f5a8b092'
 b'4ca100deff",\n  "profileName" : "WinnieTheDampoeh",\n  "textures" : {\n    '
 b'"SKIN" : {\n      "url" : "http://textures.minecraft.net/texture/2d88f007'
 b'86a8cfac18ea81df683edd060e30c09f6c51f425a15743f72061bbab"\n    }\n  }\n}')
flakes
  • 21,558
  • 8
  • 41
  • 88