17

I have a string that looks like this:

"{\\x22username\\x22:\\x229\\x22,\\x22password\\x22:\\x226\\x22,\\x22id\\x22:\\x222c8bfa56-f5d9\\x22, \\x22FName\\x22:\\x22AnkQcAJyrqpg\\x22}"

as far as I understand \x22 is ". So how could I convert this into a readable JSON with quotes around keys and values?

Gringo Suave
  • 29,931
  • 6
  • 88
  • 75
Vor
  • 33,215
  • 43
  • 135
  • 193

3 Answers3

28

Decode from string_escape:

>>> import json
>>> value = "{\\x22username\\x22:\\x229\\x22,\\x22password\\x22:\\x226\\x22,\\x22id\\x22:\\x222c8bfa56-f5d9\\x22, \\x22FName\\x22:\\x22AnkQcAJyrqpg\\x22}"
>>> value.decode('string_escape')
'{"username":"9","password":"6","id":"2c8bfa56-f5d9", "FName":"AnkQcAJyrqpg"}'
>>> json.loads(value.decode('string_escape'))
{u'username': u'9', u'password': u'6', u'id': u'2c8bfa56-f5d9', u'FName': u'AnkQcAJyrqpg'}
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
12

For a Unicode string under Python3, I found this:

value.encode('utf8').decode('unicode_escape')

https://stackoverflow.com/a/14820462/450917

Gringo Suave
  • 29,931
  • 6
  • 88
  • 75
  • 1
    Thank you! I was wondering why the answer https://stackoverflow.com/a/18219433/1247302 wasn't working, your version works great! – mrswadge Nov 18 '18 at 22:30
5

I know this question was tagged as a python question, but if anyone would be looking for a tool that could encode such string online:

http://ddecode.com/hexdecoder

John Linhart
  • 1,746
  • 19
  • 23