Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to decode JSON string to string, not unicode

Tags:

python

json

I'm trying to decode a json of a dictionary with strings as keys. The result is a dictionary with unicode keys. What is the best way to decode to a dictionary with string keys? Better: how do I prevent that strings are decoded into unicode strings? Off course I can loop afterwards...

What happens:

>>> import simplejson
>>> simplejson.loads('{"bar":["baz", null, 1.0, 2]}')
{u'bar': [u'baz', None, 1.0, 2]}
>>> simplejson.loads('"bar"')
u'bar'

Desired behaviour:

>>> import simplejson
>>> simplejson.loads('{"bar":["baz", null, 1.0, 2]}', ...?)
{'bar': ['baz', None, 1.0, 2]}
>>> simplejson.loads('"bar"', ..?)
'bar'
like image 644
Jack Ha Avatar asked Sep 10 '26 22:09

Jack Ha


1 Answers

You can't. Encode the strings after loading. Or even better, fix the rest of the code so that it doesn't fall over when using unicode.

like image 160
Ignacio Vazquez-Abrams Avatar answered Sep 12 '26 12:09

Ignacio Vazquez-Abrams