python - 无法在 django 视图的请求会话中存储字典或对象
问题描述
我正在尝试在一个视图中设置会话并在另一个视图中阅读此会话。试图在会话中存储字典。
request.session['staffdict'] = staffdict
当我尝试从第二个视图的会话中获取字典时:
staffdict = request.session.get('staffdict')
我得到以下错误:
Django 版本:2.2.6 异常类型:TypeError 异常值:
“UUID”类型的对象不是 JSON 可序列化异常位置:默认为 /usr/lib/python3.6/json/encoder.py,第 180 行 Python 可执行文件:/usr /local/bin/uwsgi Python 版本:3.6.8
解决方案
我使用 pickle 的 dumps() 和 load() 函数,并将这些方法中的字节对象转换为十六进制,如下所示:
import pickle
dict = {'s':'string', 'i':1}
hexdict = pickle.dumps(dict).hex()
# the above hexdict should be JSON OK
dict2 = pickle.loads(bytes.fromhex(hexdict))
print(dict2)
推荐阅读
- excel - 如何根据单元格Excel VBA中的列表过滤不等于数据
- java - 删除有约束的行
- ruby-on-rails - 根页面#home 还是根帖子#index?
- python - 如何使用 python selenium 迭代网页中的动态表?
- python - pip 正在成功安装 h2o4gpu,仍然收到“ImportError: No module named h2o4gpu”
- android - 来自同一事件的Android后退按钮
- wordpress - 将 wordpress 类别显示为分层
- python - 有什么方法可以调试这个 keras 层?
- angular - Angular 2+,如何读取模块中的环境变量(webpack)
- math - 20 维空间中 10 个样本的核矩阵大小是多少?