jwt TypeError: Object of type bytes is not JSON serializable
时间: 2024-05-02 15:16:09 浏览: 239
这个错误常常出现在使用 Flask 等 web 框架中,涉及到 JWT(JSON Web Token)的处理。它的原因是 Python 默认的 JSON 序列化函数 `json.dumps()` 不支持 bytes 类型的数据。
解决这个问题的方法是在序列化之前将 bytes 转化为字符串类型。可以使用 `decode()` 方法将 bytes 转换为字符串,例如:
```python
import json
# 假设 token 是 bytes 类型
token = b'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
# 将 bytes 类型转换为字符串类型
token_str = token.decode()
# 使用 json.dumps() 序列化字符串类型的 token
json.dumps({'token': token_str})
```
注意,如果将 bytes 直接传入 `json.dumps()`,会出现 TypeError 错误。
阅读全文