I use a list as part of a Python program, and wanted to convert that to an environment variable.
So, it's like this:
list1 = ['a.1','b.2','c.3'] for items in list1: alpha,number = items.split('.') print(alpha,number)
which gives me, as expected:
a 1 b 2 c 3
But when I try to set it as an environment variable, as:
export LIST_ITEMS = 'a.1', 'b.2', 'c.3'
and do:
list1 = [os.environ.get("LIST_ITEMS")] for items in list1: alpha,number = items.split('.') print(alpha,number)
I get an error: ValueError: too many values to unpack
How do I modify the way I pass the list, or get it so that I have the same output as without using env variables?
short answer: yes, you can!
How to access environment variables in Java. One of the most common ways is to use System. getenv(), which accepts an optional String argument. Based on whether a String argument is passed, a different value is returned from the method.
I recommend using JSON if you want to have data structured in an environment variable. JSON is simple to write / read, can be written in a single line, parsers exist, developers know it.
To test, execute this in your shell:
$ export ENV_LIST_EXAMPLE='["Foo", "bar"]'
Python code to execute in the same shell:
import os import json env_list = json.loads(os.environ['ENV_LIST_EXAMPLE']) print(env_list) print(type(env_list))
gives
['Foo', 'bar'] <class 'list'>
Chances are high that you are interested in cfg_load
If you see
JSONDecodeError: Expecting value: line 1 column 2 (char 1)
You might have used single-quotes instead of double-quotes. While some JSON libraries accept that, the JSON standard clearly states that you need to use double-quotes:
Wrong: "['foo', 'bar']" Right: '["foo", "bar"]'
I'm not sure why you'd do it through the environment variables, but you can do this:
export LIST_ITEMS ="a.1 b.2 c.3"
And in Python:
list1 = [i.split(".") for i in os.environ.get("LIST_ITEMS").split(" ")] for k, v in list1: print(k, v)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With