将Python对象属性值保存和检索到文件

将Python对象属性值保存和检索到文件,python,json,dictionary,file-handling,Python,Json,Dictionary,File Handling,我需要做两件事 首先,获取请求对象并保存对象属性值 作为某些已知键的值添加到文件。此文件需要可编辑 保存后,即用户可以修改键的值(因此我使用 json格式)。这是在函数中处理的 将认证参数保存到文件() 其次,以我可以检索的格式获取文件内容 使用这些键创建值。这是在函数中处理的 从\u文件获取\u auth\u参数 问题: 有没有更像蟒蛇的方式来实现这两件事 代码中有没有我忽略的潜在问题 我必须注意的任何错误情况 有一些事情需要注意,是的: i) 当您的请求由于某种原因为None时,您正在将一个

我需要做两件事

首先,获取
请求
对象并保存对象属性值 作为某些已知键的值添加到文件。此文件需要可编辑 保存后,即用户可以修改键的值(因此我使用 json格式)。这是在函数中处理的
将认证参数保存到文件()

其次,以我可以检索的格式获取文件内容 使用这些键创建值。这是在函数中处理的
从\u文件获取\u auth\u参数

问题:

  • 有没有更像蟒蛇的方式来实现这两件事

  • 代码中有没有我忽略的潜在问题

  • 我必须注意的任何错误情况


  • 有一些事情需要注意,是的:

    i) 当您的
    请求
    由于某种原因为
    None
    时,您正在将一个空的JSON对象保存到文件中。可能您只想在
    请求
    不是
    时写入文件

    auth_params = {}
    if request is not None:
        auth_params['token'] = request.token
        auth_params['auth_url'] = request.auth_url
        auth_params['server_cert'] = request.server_cert
        auth_params['local_key'] = request.local_key
        auth_params['local_cert'] = request.local_cert
        auth_params['timeout'] = request.timeout_secs
    
        with open(SUCCESS_AUTH_PARAM_FILE, 'w') as fout:
            json.dump(auth_params, fout, indent=4)
    
    ii)为什么不一次性创建dict

        auth_params = {
            'token': request.token,
            'auth_url': request.auth_url,
            'server_cert': request.server_cert,
            'local_key': request.local_key,
            'local_cert': request.local_cert,
            'timeout': request.timeout,
        }
    
    iii)确保此文件位于具有安全权限的安全位置。这是敏感数据,就像任何与身份验证相关的数据一样

    iv)每次调用
    save_auth_params_to_file
    时,您都会覆盖文件。也许您的意思是将JSON附加到文件中,而不是覆盖?如果是这样的话:

    with open(SUCCESS_AUTH_PARAM_FILE, 'a') as fout:
    
    with open(SUCCESS_AUTH_PARAM_FILE, 'a') as fout: