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

我正在尝试修改我的 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。谢谢。


狐的传说
浏览 86回答 1
1回答

SMILET

问题是它config是一个文件句柄;在该行中,从变量指向data = json.load(config)的文件中读取 JSON 。configdata所以,只需更改:email = config["email"]到:email = data["email"]接下来的四行也是如此。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python