Python 如何为crontab设置嵌套的(类似json的)环境变量

Python 如何为crontab设置嵌套的(类似json的)环境变量,python,docker,cron,environment-variables,Python,Docker,Cron,Environment Variables,我有一些环境变量,比如 VAR1={'key1': 5, 'key2': 8} 或VAR1=“{'key1':5,'key2':8}” 在用作环境变量的脚本中使用。我想在一个.env文件中使用它,以便与cron作业一起使用,如下所示: * * * * * /etc/.env python script.py > src/out.log 该脚本使用上述环境变量示例。当我在docker容器中使用它并为docker指定环境变量时,它也可以工作 但是,环境变量的语法在与cron一起使用时似乎不

我有一些环境变量,比如

VAR1={'key1': 5, 'key2': 8}
VAR1=“{'key1':5,'key2':8}”

在用作环境变量的脚本中使用。我想在一个.env文件中使用它,以便与cron作业一起使用,如下所示:

* * * * * /etc/.env python script.py > src/out.log
该脚本使用上述环境变量示例。当我在docker容器中使用它并为docker指定环境变量时,它也可以工作

但是,环境变量的语法在与cron一起使用时似乎不起作用。为什么会这样?

为什么这个语法对于普通的python脚本和docker是正确的,而对于cron则不正确

cron正在输出:

.env: 1: 5,} not found

我认为你必须这样写:

* * * * * /bin/bash -c "/etc/.env python script.py > src/out.log"

错误消息似乎在执行
/etc/.env
文件。

环境变量是在.env文件中还是在操作系统上?您还可以尝试
VAR1='{“test1”:1,“test2”:2}'
,然后
json.loads(os.getenv('VAR1'))
它位于.env文件中。我正在加载变量,比如so
printenv>/etc/.env
,但这仍然不起作用。