python - 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'
解决方案
这是因为 request.body 以字节返回数据(<class 'bytes'>),并且 data =JSONParser().parse(stream)解析函数将 <class '_io.BytesIO'> 对象作为参数,如果你通过 <class 'bytes'> object 然后它显示此错误 AttributeError: 'bytes' object has no attribute 'read'
推荐阅读
- reactjs - React jest 测试抛出“对象作为 React 子项无效(找到:带有键 {type,props} 的对象)”
- ssh - 流浪汉禁用密码身份验证不起作用
- android - 如何调试 Firebase Android Studio 应用程序,该应用程序因权限被拒绝而上传失败?
- html - 在搜索栏 HTML 中显示图像
- ios - 赋值相关对象核心数据
- google-apps-script - onSelectionChange Google 应用脚本示例
- c - 在调用者堆栈上分配的内联函数、宏和其他解决方案
- python - 当重复 ID 有付款日期时创建新列(熊猫数据框)
- react-native - PanGestureHandler 与功能组件反应原生
- python - Python在模式之后将所有内容转换为小写