从环境变量读取Python字典

Gin*_*o G 6 python bash

我正在尝试从环境变量中读取 python 脚本中的字典。

这是我的 python 脚本的代码:

  desired_cap_default = [
        {'platform': 'Windows 7', 'browserName': 'firefox', 'version': '24.0'},
        {'platform': 'OS X 10.10', 'browserName': 'chrome', 'version': '45.0'},
        {'platform': 'Windows XP', 'browserName': 'chrome', 'version': '40.0'},
        {'platform': 'OS X 10.10', 'browserName': 'safari', 'version': '8.0'},
        # {'platform': 'Windows XP', 'browserName': 'firefox', 'version': '10.0', 'screenResolution': '1600x1200',
        # 'videoUploadOnPass': False, 'commandTimeout': 120}
    ]

browser = os.getenv('TESTING_BROWSERS', desired_cap_default)
Run Code Online (Sandbox Code Playgroud)

这就是我指定环境变量的方式(但没有将其识别为字典)

TESTING_BROWSERS="[{'platform': 'Windows 7', 'browserName': 'firefox', 'version': '24.0'}, \
    {'platform': 'OS X 10.10', 'browserName': 'chrome', 'version': '45.0'}, \
    {'platform': 'Windows XP', 'browserName': 'chrome', 'version': '40.0'}, \
    {'platform': 'OS X 10.10', 'browserName': 'safari', 'version': '8.0'},  ]"
Run Code Online (Sandbox Code Playgroud)

谁能帮我弄清楚我错过了什么?预先感谢大家

Won*_*ket 6

您可以使用该ast模块来实现此目的。

TESTING_BROWSERS = "[{'platform': 'Windows 7', 'browserName': 'firefox', 'version': '24.0'}, \
{'platform': 'OS X 10.10', 'browserName': 'chrome', 'version': '45.0'}, \
{'platform': 'Windows XP', 'browserName': 'chrome', 'version': '40.0'}, \
{'platform': 'OS X 10.10', 'browserName': 'safari', 'version': '8.0'},  ]"

import ast
my_dict = ast.literal_eval(TESTING_BROWSERS)
Run Code Online (Sandbox Code Playgroud)