python - 尝试将字典中的值分配给结构环境设置

标签 python fabric

我正在编写我的第一个特定于环境的 fabfile。本质上,我为每个环境创建了一个 env 设置文件,其中包含一个带有用户、密码和主机的 json 字符串。然后我为每个在实际部署函数之前调用的环境分配了一个任务。像这样:

fab dev deployApp

dev 任务(在本例中)调用我编写的函数来解析相关设置文件并尝试将 env 设置设置为解析后的值。

def set_env(env):
    json_data = open(env + '_settings.env', 'r')
    env_data = json.load(json_data)
    json_data.close()
    env.user = env_data['user']
    env.password = env_data['password']

但是,当我调用此函数时,我收到以下我似乎无法破译的错误:

env.user = "" + env_data['user']
AttributeError: 'str' object has no attribute 'user'

我通过打印值测试了正在读取文件,它们确实是正确的。我假设我在访问 dict 值时做错了什么,但似乎无法找到正确的搜索组合来给我一个有效的答案。

最佳答案

更改参数名称,因为它正在替换您的全局变量 env。像这样的东西:

def set_env(env_str):
    json_data = open(env_str + '_settings.env', 'r')
    env_data = json.load(json_data)
    json_data.close()
    env.user = env_data['user']
    env.password = env_data['password']

关于python - 尝试将字典中的值分配给结构环境设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17938159/

相关文章:

python - SQLALCHEMY 设置默认值 False 可空 True

python - 如何向量化这个二维矩阵运算?

ssh - 使用Fabric连接到AWS-EC2时禁用密码提示

python - 从具有不同顶级文件夹名称的 Django 项目导入

fabric - 在 python 模块中组织结构任务

python - 警告 : Unable to load SSH config file '/root/.ssh/config' in fabric

python - 从列表中获取特定字符串 - Python

python - 将自定义函数输出添加到 Python 日志记录处理程序

python - 更改Python的日期时间模块中的年份开始时间?

python - Windows 中的 Fabric 自动登录