[英]JSON Serialization error with simplejson
我有以下代码:
data = {'services': [u'iTunes'],
'orders': [u'TestOrder', u'Test_April_Titles_iTunes'],
'providers': ''}
return HttpResponse(simplejson.dumps(data))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py" in default
178. raise TypeError(repr(o) + " is not JSON serializable")
Exception Type: TypeError at /reports/change_dropdown/
Exception Value: [u'iTunes'] is not JSON serializable
我要怎么做才能序列化此字典并在其中包含一个列表?
问题在于itunes
是非JSON兼容类型。
要解决提供默认类型以在序列化时转换非JSON兼容类型的问题:
simplejson.dumps(data, default=str))
甚至:
def handler(val):
if isinstance(val, unicode)
return str(val)
else:
return val
simplejson.dumps(data, default=handler))
第二个选项的优点是您可以处理集合(例如,转换为列表),日期(例如,转换为int时间戳)等。
从unicode
转换为str
在这里工作:
data['services'] = [str(item) for item in data['services']]
data['orders'] = [str(item) for item in data['orders']]
data['providers'] = [str(item) for item in data['providers']]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.