首页 > 解决方案 > Django,用于数据反序列化的io模块

问题描述

在 Django Rest Framework 文档中,有如下所述的反序列化过程

import io

stream = io.BytesIO(content)
data = JSONParser().parse(stream)

content是一个 JSON 对象。

为什么我们不能直接将数据反序列化为data = JSONParser().parse(content),当我在 localmachine 中这样做时会引发错误AttributeError: 'bytes' object has no attribute 'read'

标签: pythondjangodjango-rest-framework

解决方案


这是因为 request.body 以字节返回数据(<class 'bytes'>),并且 data =JSONParser().parse(stream)解析函数将 <class '_io.BytesIO'> 对象作为参数,如果你通过 <class 'bytes'> object 然后它显示此错误 AttributeError: 'bytes' object has no attribute 'read'

看例子


推荐阅读