将环境变量设置为数值导致错误 python
setting environment variable to numeric value leads to error in python
尝试在以下代码中设置 ENV 变量
import os
dicta = {}
def setv(evar, evalue):
os.environ[evar] = evalue
dicta.setdefault('UENV', {}).update({evar: evalue})
# Set environment variables
setv('API_USER', 'username')
setv('API_PASSWORD', 'secret')
setv('NUMBER', 1)
在 NUMBER 变量设置为数值 1 的最后一条语句中。出现以下错误:
Traceback (most recent call last):
File "./pyenv.py", line 19, in <module>
setv('NUMBER', 1)
File "./pyenv.py", line 13, in setv
os.environ[evar] = evalue
File "/home/python/3.6.3/1/el-6-x86_64/lib/python3.6/os.py", line 674, in __setitem__
value = self.encodevalue(value)
File "/home/python/3.6.3/1/el-6-x86_64/lib/python3.6/os.py", line 744, in encode
raise TypeError("str expected, not %s" % type(value).__name__)
TypeError: str expected, not int
我不想将变量值转换为 str 并将值保留为 int。任何关于将 NUMBER 值保留为数字 1 并且看不到此错误消息的想法
环境变量是字符串值。从您的环境中导入它们后,将它们类型转换回整数是可行的方法。
尝试在以下代码中设置 ENV 变量
import os
dicta = {}
def setv(evar, evalue):
os.environ[evar] = evalue
dicta.setdefault('UENV', {}).update({evar: evalue})
# Set environment variables
setv('API_USER', 'username')
setv('API_PASSWORD', 'secret')
setv('NUMBER', 1)
在 NUMBER 变量设置为数值 1 的最后一条语句中。出现以下错误:
Traceback (most recent call last):
File "./pyenv.py", line 19, in <module>
setv('NUMBER', 1)
File "./pyenv.py", line 13, in setv
os.environ[evar] = evalue
File "/home/python/3.6.3/1/el-6-x86_64/lib/python3.6/os.py", line 674, in __setitem__
value = self.encodevalue(value)
File "/home/python/3.6.3/1/el-6-x86_64/lib/python3.6/os.py", line 744, in encode
raise TypeError("str expected, not %s" % type(value).__name__)
TypeError: str expected, not int
我不想将变量值转换为 str 并将值保留为 int。任何关于将 NUMBER 值保留为数字 1 并且看不到此错误消息的想法
环境变量是字符串值。从您的环境中导入它们后,将它们类型转换回整数是可行的方法。