python - 为什么从会话中检索整数字典键作为字符串?
问题描述
在下面的代码中,为什么字典的1
键people
在视图中检索为字符串session_retrieve
?如何保留原始(整数)类型?
另外,为什么值不会发生同样的情况45
?
def session_add(request):
people = {
1: {
'name': 'Tom',
'age': 45,
}
}
request.session['people'] = people
print(request.session['people'])
# prints {1: {'name': 'Tom', 'age': 45}}
return HttpResponse('added')
def session_retrieve(request):
print(request.session['people'])
# prints {'1': {'name': 'Tom', 'age': 45}}
return HttpResponse('retrieved')
解决方案
文档中已经提到了这种行为。以文档为例
>>> # initial assignment
>>> request.session[0] = 'bar'
>>> # subsequent requests following serialization & deserialization
>>> # of session data
>>> request.session[0] # KeyError
>>> request.session['0']
'bar'
另外,为什么值不会发生同样的情况45
?
JSON 仅支持字符串键,但值可以是任何值。
推荐阅读
- makefile - pyenv:编译模块
- teradata - teradata 有没有办法从另一个表中替换一行中的多个字符串?
- python - ' HTML 编号显示 '
- javascript - 基本代码适用于除 IE 以外的所有浏览器
- amazon-web-services - AWS 中用于非常简单(转换)ETL 的最简单工具?
- sql - ssis 从 excel 导出到 sql,与列数无关
- javascript - 无法连接到我在 AWS 上运行的 Mongo 服务器。节点进程未启动,但 Mongod 日志看起来不错
- gradle - 如何更改/覆盖 rootDir/projectDir?
- automata - 为语言构建语法
- java - 如何通过多个视图调用“setOnClickListener”方法?