我正在用棉花糖和芒果汁在烧瓶上做原料药。当我打电话并且一个ID应该被序列化时,我收到以下错误:
TypeError: ObjectId('54c117322053049ba3ef31f3') is not JSON serializable
我在其他库中看到了一些方法来覆盖ObjectId的处理方式。我还没想好用棉花糖,有人知道怎么做吗?在
我的模型是:
^{pr2}$我的序列化程序:
class ProcessSerializer(Serializer):
class Meta:
fields = ("id", "created_at", "name")
以及观点:
class ProcessView(Resource):
def get(self, id):
process = Process.objects.get_or_404(id)
return ProcessSerializer(process).data
marshmallow-mongoengine执行以下操作:
它有一个^{} 字段,用于序列化/反序列化
ObjectId
s当您将} 可以转换为字符串,所以使用
Meta.fields
传递给模式时,Marshmallow会尝试为每个属性选择一个字段类型。因为它不知道ObjectId
是什么,所以它只将它传递给序列化的dict。当您尝试将其转储到JSON时,它不知道ObjectId
是什么,并引发错误。要解决这个问题,您需要告诉marshullow要使用哪个字段作为id。A BSON ^{String
字段。在您还可以告诉Marshmallow要为
^{pr2}$ObjectId
类型使用哪个字段,这样就不必每次都添加字段。在相关问题 更多 >
编程相关推荐