我在Python/Django
:bytearray(b'') is not JSON serializable
中收到此错误消息。目前,我是这样做的:
...
from django.core.serializers.json import DjangoJSONEncoder
...
output = json.dumps(data, cls=DjangoJSONEncoder)
return HttpResponse(output)
我导入DjangoJSONEncoder
,因为在此之前,我对datetime
有问题。这个问题消失了,但是现在我对类型bytearray
有了另一个问题。所以,我想知道,是否有一种创建json字符串的标准和通用方法,不管您使用什么数据类型。
正如@Martijn Pieters在他的评论中所建议的,Json编码器不知道如何将bytearray转换为相应的Json符号。
查看https://docs.python.org/2/library/json.html#encoders-and-decoders以了解json理解的数据类型。DjangoJSONEncoder使用相同的子集,理解djangoqueryset。
解决问题的方法可能是为bytearray实现一个custom encoder,并在UI中正确地处理响应。
对于json无法编码的类型,可以先使用
cPickle.dumps()
转换为字符串类型,然后使用json。不过,在使用cPickle之前,请记住来自docs的警告:
相关问题 更多 >
编程相关推荐