BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #21648同步于 2018/5/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

【求助】tornado提取body中json数据为二进制不是str

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