我有JSON结果
{ “sUrlRedirect”: “HTTP://dez.loc/registration”, “sMsgTitle”:NULL, “SMSG”:“\ u041f \ u043e \ u0437 \ u0434 \ u0440 \ u0430 \ u0432 \ u043b \ u044f \ u0435 \ u043c! \ u0420 \ u0435 \ u0433 \ u0438 \ u0441 \ u0442 \ u0440 \ u0430 \ u0446 \ u0438 \ u044f \ u043f \ u0440 \ u043e \ u0448 \ u043b \ u0430 \ u0443 \ u0441 \ u043f \ u0435 \ u0448 \ u043d \ u043e”, “bStateError”:假}
我如何在python中解码它。结果必须像这样
{ “sUrlRedirect”: “HTTP://dez.loc/registration”, “sMsgTitle”:NULL, “SMSG”:“Поздравляем! Регистрацияпрошлауспешно“,”bStateError“:false}
谢谢...
UPD
我可以不使用json
模块吗?
答案 0 :(得分:4)
只需使用内置的python json
模块将json加载为python对象,但是你会看到你的unicode字符串被表示为'\ u041f',当你在你的应用程序中使用它们时,它应该看起来很好俄文。
>>> json_str= '{"sUrlRedirect":"http://dez.loc/registration","sMsgTitle":null,"sMsg":"\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c! \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e","bStateError":false}'
>>> import json
>>> the_dict = json.loads(json_str)
>>> the_dict
{u'sMsgTitle': None, u'bStateError': False, u'sMsg': u'\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c! \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e', u'sUrlRedirect': u'http://dez.loc/registration'}
>>> print the_dict['sMsg']
Поздравляем! Регистрация прошла успешно
答案 1 :(得分:2)
使用json module:
In [1]: import json
In [2]: s = '''{"sUrlRedirect":"http://dez.loc/registration","sMsgTitle":null,"sMsg":"\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c! \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e","bStateError":false}'''
In [3]: json.loads(s)
Out[3]:
{u'bStateError': False,
u'sMsg': u'\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c! \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e',
u'sMsgTitle': None,
u'sUrlRedirect': u'http://dez.loc/registration'}
In [4]: for k, v in json.loads(s).iteritems():
print k, v
...:
sMsgTitle None
bStateError False
sMsg Поздравляем! Регистрация прошла успешно
sUrlRedirect http://dez.loc/registration
In [5]: print repr(json.loads(s)).decode("unicode-escape")
{u'sMsgTitle': None, u'bStateError': False, u'sMsg': u'Поздравляем! Регистрация прошла успешно', u'sUrlRedirect': u'http://dez.loc/registration'}