为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确设置 json 配置文件,以便它可以用来替换 python 程序中的硬编码值

如何正确设置 json 配置文件,以便它可以用来替换 python 程序中的硬编码值

狐的传说 2023-09-26 14:25:12
我正在尝试修改我的 python 方法,以便它从单独的 json 配置文件中读取值。我有一个单独的有效 json 文件,如下所示testtok.json:    {        "email" : "user@domain.com",        "audience" : "http://someaudience.com",        "jti" : "MYJTI1234",        "name" : "John Smith",        "humid" : "ABC1234"    }我想将这些值传递给我的函数:def tokengen(self, privatekey):    with open('config/testtok.json', 'r') as config:        data = json.load(config)    try:        """Simulate Token Manager creating a token"""        email = config["email"]        audience = config["audience"]        jti = config["jti"]        name = config["name"]        humid = config["humid"]        #email = "user@domain.com"        #audience = "http://someaudience.com"        #jti = "MYJTI1234"        #name = "John Smith"        #humid = "ABC1234"        """Time Component"""        timestamp = testdate()        timestamp.now()        issued = int(time.time())        expires_in=2400                     expires = issued + expires_in                   additional_headers = {                "alg": "RS256",                "typ": "JWT"            }                payload = {            "iss": email,                   "sub": email,            "aud": audience,            "iat": issued,            "nbf": issued,                  "exp": expires,                 "jti": jti,            "name": name,            "humid": humid,            "email": email        }我看到此错误,但不清楚如何解决此问题。Traceback (most recent call last):  File "testTokClass.py", line 25, in tokengen    config["email"]TypeError: '_io.TextIOWrapper' object is not subscriptable有一个更好的方法吗?理想情况下,我希望配置文件为 json。谢谢。
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

问题是它config是一个文件句柄;在该行中,从变量指向data = json.load(config)的文件中读取 JSON 。configdata

所以,只需更改:

email = config["email"]

到:

email = data["email"]

接下来的四行也是如此。


查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 56 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信