I am facing an issue while decoding json string using json.loads

alex23 wuwei23 at gmail.com
Wed Dec 26 12:35:50 CET 2012

On Dec 26, 5:14 pm, sajuptpm <sajup... at gmail.com> wrote:
> I am facing an issue while decoding json string using json.loads(jstring).
> Its working, if i do json.dumps(eval(jstring)) before json.loads(jstring).

I cannot reproduce your problem using the original string:

>>> s = u'{"selected_objects":{"datacenter-2":{"name":"Data !@#$%25^&*()_ {}[]|%
5c%2f.,?><:\\"`Center8(Data !@#$%^&*()_ {}[]|\\\\/.,?><:\
tacenter","moid":"datacenter-2","ac tual_name":"Data !@#$%25^&*()_ {}
?><:\\"`Center8","server_pools":[{"name":"cluster ~!@#$%25^&*()_ {}|\
;\'%5c][=-`(cluster ~!@#$%^&*()_ {}|\\":?><,./;\'\\\\][=-
uteResource","moid":"domain- c401","actual_name":"cluster ~!@#$
%25^&*()_ {}|\\":
>>> json.loads(s)
{u'selected_objects': {u'datacenter-2': {u'ac tual_name': u'Data !@#$
%25^&*()_ {
}[]|%5c%2f.,?><:"`Center8', u'moid': u'datacenter-2', u'type':
u'Datacenter', u'
name': u'Data !@#$%25^&*()_ {}[]|%5c%2f.,?><:"`Center8(Data !@#$
%^&*()_ {}[]|\\/
.,?><:"`Center8)', u'server_pools': [{u'hosts': [{u'actual_name':
', u'moid': u'host-27', u'type': u'HostSys tem', u'name':
u''}], u'a
ctual_name': u'cluster ~!@#$%25^&*()_ {}|":?><,.%2f;\'%5c][=-`',
u'moid': u'doma
in- c401', u'type': u'ClusterComputeResource', u'name': u'cluster ~!@#$
 {}|":?><,.%2f;\'%5c][=-`(cluster ~!@#$%^&*()_ {}|":?><,./;\'\\][=-

Notice the space in the first occurance of the key 'actual_name' (and
later in 'HostSys tem') however. Could it be a non-printable character
like an EOL that's somehow managed to make its way into your string?

Other than that, I'm at a loss as to why you're seeing a difference.
Which version of Python are you using?

More information about the Python-list mailing list