Python如何给os.environ.get返回值追加.json后缀作为输出文件名
报错原因
os.environ.get() 获取到的环境变量返回值是字符串类型,Python的字符串不存在json属性,所以你尝试用.json的写法会抛出AttributeError: 'str' object has no attribute 'json'错误。
解决方法
你只需要对获取到的环境变量值做字符串拼接,就可以追加.json后缀,常用写法有两种:
- 方法1:直接用
+拼接字符串
if Report == "Main": newFile = os.environ.get('parent') + '.json' else: newFile = os.environ.get('child') + '.json'
- 方法2:用f-string格式化(Python3.6及以上版本支持,可读性更高)
if Report == "Main": newFile = f"{os.environ.get('parent')}.json" else: newFile = f"{os.environ.get('child')}.json"
额外优化建议
- 可以增加环境变量非空判断,避免环境变量未配置时取到
None,拼接时报错:
if Report == "Main": env_val = os.environ.get('parent') else: env_val = os.environ.get('child') if not env_val: raise ValueError("对应环境变量未配置,请检查") newFile = f"{env_val}.json"
- 你原有代码末尾的
file.close()可以直接删除:你使用了with open(...) as outfile的上下文管理器语法,代码块执行结束后会自动关闭文件,不需要手动调用close方法;且你定义的文件对象名为outfile不是file,保留这行反而会抛出NameError。
内容的提问来源于stack exchange,提问作者Metro
相关产品推荐
相关产品推荐

