作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我将列表用作 Python 程序的一部分,并希望将其转换为环境变量。
所以,它是这样的:
list1 = ['a.1','b.2','c.3']
for items in list1:
alpha,number = items.split('.')
print(alpha,number)
这给了我预期的结果:
a 1
b 2
c 3
但是当我尝试将其设置为环境变量时,如:
export LIST_ITEMS = 'a.1', 'b.2', 'c.3'
并做:
list1 = [os.environ.get("LIST_ITEMS")]
for items in list1:
alpha,number = items.split('.')
print(alpha,number)
我得到一个错误:ValueError: too many values to unpack
如何修改传递列表或获取列表的方式,以便获得与不使用环境变量时相同的输出?
最佳答案
如果你想在环境变量中构建数据,我建议使用 JSON。 JSON 易于编写/读取,可以写在一行中,存在解析器,开发人员知道这一点。
要进行测试,请在您的 shell 中执行此命令:
$ export ENV_LIST_EXAMPLE='["Foo", "bar"]'
在同一个 shell 中执行的 Python 代码:
import os
import json
env_list = json.loads(os.environ['ENV_LIST_EXAMPLE'])
print(env_list)
print(type(env_list))
给予
['Foo', 'bar']
<class 'list'>
您很可能对 cfg_load
感兴趣
如果你看到
JSONDecodeError: Expecting value: line 1 column 2 (char 1)
您可能使用了单引号而不是双引号。虽然一些 JSON 库接受这一点,the JSON standard明确指出您需要使用双引号:
Wrong: "['foo', 'bar']"
Right: '["foo", "bar"]'
关于python - 如何将列表作为环境变量传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31352317/
我是一名优秀的程序员,十分优秀!