遇到TypeError: can only concatenate str (not NoneType) to str错误求助
问题排查与解决方案
错误原因
报错TypeError: can only concatenate str (not "NoneType") to str的直接诱因是字符串拼接时,变量my_value_a为None类型,而非预期的字符串类型。
根因出在get_env_var函数的逻辑漏洞:仅对索引越界的异常做了捕获,返回固定字符串"demo",但os.getenv()在未匹配到对应环境变量时会默认返回None,该场景未做兼容处理。
修复方案
- 给
os.getenv添加默认返回值,避免无匹配环境变量时返回None,修改后的函数代码如下:
def get_env_var(i): try: letter = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'][i // 50] # 第二个参数为未找到环境变量时的默认返回值 return os.getenv("MY_VAR_" + letter, "demo") except IndexError: return "demo"
- 增加额外类型兼容逻辑,拿到变量后统一转成字符串,避免意外场景:
my_value_a = str(get_env_var(i))
- 排查运行环境的环境变量配置,确认你需要用到的
MY_VAR_A到MY_VAR_L格式的变量已正确配置,无拼写、大小写、特殊符号错误。
内容的提问来源于stack exchange,提问作者simplyinvestor
相关产品推荐
相关产品推荐

