سؤال

لدي الحالة التالية حيث أحصل على نتيجة استجابة HTTP المشفرة UTF-8. أريد تحميل محتوى الاستجابة (JSON). ومع ذلك لا أعرف لماذا يجب أن أفعل 2 json.loads حتى أحصل على القائمة النهائية:

result = urllib2.urlopen(req).read()
print result, type(result)
#=> "[{\"pk\": 66, \"model\": \"core.job\", \"fields\": {\"customer\": 1, \"created_ts\": \"2010-03-06 06:33:36\", \"log\": 66, \"process\": 1, \"ended_ts\": null, \"state\": \"PENDING\", \"started_ts\": null}}]" <type 'str'>
ret = json.loads(result)
print ret , type(ret)
#=> [{"pk": 66, "model": "core.job", "fields": {"customer": 1, "created_ts": "2010-03-06 06:33:36", "log": 66, "process": 1, "ended_ts": null, "state": "PENDING", "started_ts": null}}] <type 'unicode'>
ret = json.loads(ret)
print ret , type(ret)
#=>[{u'pk': 66, u'model': u'core.job', u'fields': {u'customer': 1, u'created_ts': u'2010-03-06 06:33:36', u'log': 66, u'process': 1, u'ended_ts': None, u'state': u'PENDING', u'started_ts': None}}] <type 'list'>

أيه أفكار؟

هل كانت مفيدة؟

المحلول

يبدو مثل repr() من سلسلة JSON هو ما يتم إرجاعه بدلاً من سلسلة JSON نفسها. لذلك ، يتم كسر شيء ما على الخادم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top