python - Django REST 框架 - 序列化和反序列化原始类型列表

标签 python serialization deserialization django-rest-framework

手头的任务是使用序列化器序列化基本类型列表(比如整数或字符串),然后再次反序列化该列表。这应该很容易,但不知何故我无法让它发挥作用。我设法序列化了一个简单的模型,它看起来像这样:

{'title': u'Something', 'description': u'sldfj', 'price': Decimal('78.56'), 'numbers': [3, 2, 1]}

...所以我需要做些什么来重建数字列表?我的序列化器看起来像这样:

class OfferSerializer(serializers.Serializer):
    title = serializers.CharField()
    description = serializers.CharField(required=False)
    price = serializers.DecimalField()
    numbers = serializers.IntegerField(required=False)

    def restore_object(self, attrs, instance=None):
        if instance:
            for key, val in attrs.items():
                setattr(instance, key, val)
            return instance

        return Offer(**attrs)

使用 mongoengine 可以简单地说 ListField(IntField()) 一切都很好。我必须编写自己的 ListSerializer 吗?

谢谢...

最佳答案

如果您只需要序列化,那么只需使用常规的 Field 就可以了。

如果您还需要反序列化,那么编写自定义字段类型可能是最好的选择,因为 rest 框架还没有通用列表或字典容器字段。

关于python - Django REST 框架 - 序列化和反序列化原始类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256135/

相关文章:

python - 在有 GIL 的情况下,您可以在 Python 中竞争条件吗?

python - 实例化对象并使用类定义 __init__

python - 使用 rpy2 映射 python 元组和 R 列表?

c# - 如何正确地从 WCF DatacontractSerializer 迁移到 Protobuf-net?

.net - 如何使用 Json.NET 为数组中的每个对象反序列化带有 "root"元素的 JSON 数组?

c# - XMLAttribute 不工作

python - 让套索在 matplotlib 中的子图上正确工作

Ruby 序列化游戏类

c++ - 使用序列化 C++ 保存游戏状态

c# - 使用 C# 将 Xml 反序列化为 List<T>