Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django rest框架如何序列化字符串列表?_Python_Django_Django Rest Framework - Fatal编程技术网

Python Django rest框架如何序列化字符串列表?

Python Django rest框架如何序列化字符串列表?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我想给出postman中的字符串列表,例如: ['string1'、'string2'、'string3'、'string4'、'string5'] 但当它到达serializer.is_valid()时,它会给出: "non_field_errors": [ "Invalid data. Expected a dictionary, but got str." ] 这是我的序列化程序: class URLRequestedSerializer(seri

我想给出postman中的字符串列表,例如:

['string1'、'string2'、'string3'、'string4'、'string5']

但当它到达serializer.is_valid()时,它会给出:

"non_field_errors": [
            "Invalid data. Expected a dictionary, but got str."
        ]
这是我的序列化程序:

class URLRequestedSerializer(serializers.Serializer):
    urls = serializers.ListField(child=serializers.CharField())

如何将序列化程序设置为字符串列表?

从postman收到的字符串列表是django中的字符串类型,请尝试使用
eval
将其转换。

正如错误消息所述,您似乎在postman中将列表而不是字典作为JSON发布

您发布了:

['string1', 'string2', 'string3', 'string4', 'string5']
但你应该发布:

{
    "urls": ["string1", "string2", "string3", "string4", "string5"]
}

记住,您的序列化程序定义了字段
URL
,因此您必须将数据发送到JSON正文中的正确字段:)

也许您应该显示您的序列化程序代码?发布了我的序列化程序。您需要向我们显示更多信息,现在有办法知道您实际发布了什么。如果您只发布一个字符串数组(记录错误消息),则可能意味着您的发布是错误的,因为序列化程序需要这样的json:
{“url”:[“string1”,…]}
.sry,但错误消息并不表示类似的情况。at实际上表示POST数据与序列化程序要求不匹配。通常尝试避免
eval