这是我的会话变量
session['data'] = json.loads(request.data.decode())
print(session.pop('data', None))
打印如下:
{u'mark': u'all', u'chr': u'1A', u'distmin': 5, u'distmax': 10}
我的问题是,如何对此词典进行子集化,
print(session.pop('data["mark"]', None))
这不起作用,返回None
。
答案 0 :(得分:3)
这不是Python的映射是如何工作的。 data["mark"]
是有效密钥。要访问嵌套映射,您需要单独指定密钥。
session['data']['mark'] = 'spam'
pop
使用的密钥应与__getitem__
的密钥相匹配。就像您不使用session['data["mark"]']
访问与data
键相关联的词典一样,您也不会以相同的方式删除键。您正在寻找的语法是
session['data'].pop('mark', None)
在更改这样的嵌套对象后,将会话标记为已修改。会话只能自动进行直接更改。
session.modified = True