返回信息流如图所示,用postman的post方式给localhost发送了一个{“a”:1}的json格式数据,图中post方法前两句在控制台输出数据类型和body中的内容,数据类型(content-type)输出了application/json,但是body中的内容是b'{"a":1}’也就是说提取出的body内容是个二进制,而不是str,直接导致了第三四句json的解析出错。
按理来说self.request.body应该输出的是str类型的json数据,求问哪里出错了,附上控制台信息
这是一条镜像帖。来源:北邮人论坛 / python / #21648同步于 2018/5/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
【求助】tornado提取body中json数据为二进制不是str
zyt1203
2018/5/2镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
因为body返回的是二进制数据
可以post一个字符串上去,也可以post一幅图上去,两者都可以用bytes表示 而str只能表示前者
【 在 zyt1203 (aaaabbbb) 的大作中提到: 】
: 额 想问原因....你这个 跟没说一样啊
不能返回str吗?我看黑马视频一样的步骤 只不过他是用的python2,结果body取出的数据就直接是str可以打印在网页上
【 在 specops 的大作中提到: 】
: 因为body返回的是二进制数据
: 可以post一个字符串上去,也可以post一幅图上去,两者都可以用bytes表示 而str只能表示前者
Python2和3不一样 3显式区分了bytes和str
【 在 zyt1203 (aaaabbbb) 的大作中提到: 】
: 不能返回str吗?我看黑马视频一样的步骤 只不过他是用的python2,结果body取出的数据就直接是str可以打印在网页上
原来是这样,十分感谢,看来只能多加个decode了
【 在 specops 的大作中提到: 】
: Python2和3不一样 3显式区分了bytes和str