我使用的: Ubuntu14.04 , python3.5 , 在 virtualenv 环境下,运行一个 Flask 小程序:使用 itsdangerous 生成 token , 使用 Flask 的 jsonify 返回,出现了如下错误:
File "/usr/lib/python3.5/json/encoder.py", line 180, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: b'eyJhbGciOiJIUzI1NiIsImlhdCI6MTQ1ODU2NDQ3MywiZXhwIjoxNDU4NTY4MDczfQ.eyJ1aWQiOiI1NzEwMTk0MTI5In0.Z66p5rxbUqWT_pbdonK8Im6VXHLP_gEZPW71sWn0b-s' is not JSON serializable
代码大概如下:
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
def return_token():
utoken = gen_token()
return jsonify({'access_token': utoken}), 200
def gen_token():
s = Serializer('sercret_key', expires_in=3600)
return s.dumps({'uid': self.uid})
1
knightdf 2016-03-21 20:59:50 +08:00
你跟我把字节打印出来看看。。。不就是二进制串么。。。
|
2
JhOOOn OP @knightdf 上面的错误里,有打印出来的字节,以前用过(难道我记错了?),可以序列化的,换个电脑就不行了,不知道哪里又配置错了
|
3
billlee 2016-03-21 21:09:31 +08:00
JSON 里面没有二进制类型,要么把 bytes 解码成 unicode 字符串,要么编码成 base64
|
4
wizardforcel 2016-03-21 21:34:13 +08:00 via Android
@billlee 或者转成 int 数组。
|