gpt4 book ai didi

python - 如何将列表作为环境变量传递?

转载 作者:太空狗 更新时间:2023-10-29 17:54:26 37 4
gpt4 key购买 nike

我将列表用作 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/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com