将环境变量设置为数值导致错误 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 并且看不到此错误消息的想法

环境变量是字符串值。从您的环境中导入它们后,将它们类型转换回整数是可行的方法。