学习Python,我正在学习有关Flask的出色的Corey Schafer教程,他做到了(出于明显的原因,我已提取并总结了它):
from folder_app import app # I did it to follow the structure and that the code is equal to the original
s = Serializer(app.config['SECRET_KEY'], 1800) # key, seconds
token = s.dumps({'user_id': 1}).decode('utf-8')
s = Serializer(app.config['SECRET_KEY'])
user_id = s.loads(token)['user_id'] # This is where I have the doubt
print(user_id)
print(type(s.loads(token)))
该代码有效,但我遇到的问题是,尽管您可以看到(s.loads (token))
是dict
,但我希望看到类似s.loads ({token ['user_id']})
或s.loads (token ['user_id'])
的内容。或类似的东西。也就是说,它是dict
,但事实并非如此。从某种意义上说,这是否来自他们所谓的“ pythonic”(到目前为止,我还没有看到)的更大概念,或者仅在这种情况下才会发生。顺便说一句,https://itsdangerous.palletsprojects.com/en/1.1.x/jws/
出现:loads (self, s, salt = None, return_header = False)
参数在括号中。我希望我的疑问很清楚:)
答案 0 :(得分:0)
我知道这不是每个人的回答,而只是增加我的评论。这是overlay.frame = self.bounds // bounds, not frame
函数如何在带有json模块的字典上工作的示例。 https://docs.python.org/3/library/json.html#json.loads。它要做的是获取一个json字符串,然后在Python中返回字典类型的对象。您的序列化器正在执行类似的操作。它采用令牌字符串并将其表示为override func layoutSubviews() {
super.layoutSubviews()
self.overlay.frame = self.bounds
}
我假设的loads
与json.dumps
相似,后者为您提供python字典的json字符串表示形式。
dict
因此,您只需做s.dumps
即可,它只是链接操作。