Python Airblow找不到json文件

Python Airblow找不到json文件,python,airflow,Python,Airflow,我的Aitflow流程有以下结构: dags/mainDag.py dags/BigQuery/deleteData.py dags/BigQuery/insertData.py dags/support/gcp.json dags/support/__init__py 我的mainDag.py正在调用deleteData.py和insertData.py,这就行了!但我的问题是:在这两个文件中,我使用的gcp.json如下: credentialsPath = "~/airflow/dags

我的Aitflow流程有以下结构:

dags/mainDag.py
dags/BigQuery/deleteData.py
dags/BigQuery/insertData.py
dags/support/gcp.json
dags/support/__init__py
我的
mainDag.py
正在调用
deleteData.py
insertData.py
,这就行了!但我的问题是:在这两个文件中,我使用的
gcp.json
如下:

credentialsPath = "~/airflow/dags/support/gqp.json"
bigqueryClient = bigquery.Client.from_service_account_json(credentialsPath)
在Airflow Web服务器中,我有一个错误:

FileNotFoundError:[Errno 2]没有这样的文件或目录:“~/aiffort/dags/support/gqp.json”

但是我可以使用此路径成功地在bash上对文件内容进行cat。 我在书堆里读到了这两个问题,[和],但两者都不起作用! 有人知道如何解决这个问题吗?

如果您尝试:

import os
credentialsPath = "~/airflow/dags/support/gqp.json"
print(os.path.isfile(credentialsPath))
您将看到输出为
False
。这是因为python不会将
~
扩展到您的用户主目录。您可以使用以下函数执行此操作:

import os
credentialsPath = os.path.expanduser("~/airflow/dags/support/gqp.json")
print(os.path.isfile(credentialsPath))
现在,这将输出
True
,因为您的文件路径已通过主目录展开。

如果您尝试:

import os
credentialsPath = "~/airflow/dags/support/gqp.json"
print(os.path.isfile(credentialsPath))
您将看到输出为
False
。这是因为python不会将
~
扩展到您的用户主目录。您可以使用以下函数执行此操作:

import os
credentialsPath = os.path.expanduser("~/airflow/dags/support/gqp.json")
print(os.path.isfile(credentialsPath))
现在,这将输出
True
,因为您的文件路径已使用主目录展开