0

每个人!

我真的需要从与我的 main.py 文件位于同一文件夹中的 json 文件中获取内容。问题是:Google Cloud Function 无法运行该open()语句。由于出现以下错误:

没有这样的文件或目录:' mytest .json'

现在,我将我的文件上传到云存储中,但我希望它在云源中。那么,如何从 Cloud Source 获取我的 json 文件内容?

这是我在 Cloud Source 中的代码结构:

.
├── main.py
└── requirements.txt
└── mytest.json

mytest.json

{
    'test': 'Hello World!'
}

主要.py:

import json
with open('mytest.json', 'r') as testJson:
     testDict = json.loads(testJson.read())
     print(testDict['test'])
4

1 回答 1

1

我试图复制您的问题,但无法得到您的错误。正如 Doug 所提到的,当您部署函数时,目录中的所有文件都会上传到函数的工作区。你是如何部署你的功能的?

对于这个复制品,我使用了 Cloud Shell。在那里,我创建了一个名为 ReadJson 的目录,其中包含两个文件:main.py 和 myfile.json。

在云外壳上,在 ReadJson 目录中,我执行了这个 gcloud 命令:

gcloud 函数部署 hello_world --runtime python37 --trigger-http

使用下面的代码,当触发函数时,您应该在浏览器上观察到“HelloWorld”。

def hello_world(request):
    """Responds to any HTTP request.
    Args:
        request (flask.Request): HTTP request object.
    Returns:
        The response text or any set of values that can be turned into a
        Response object using
        `make_response <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>`.
"""
    request_json = request.get_json()
    if request.args and 'message' in request.args:
        return request.args.get('message')
    elif request_json and 'message' in request_json:
        return request_json['message']
    else:
        with open('myfile.json') as json_file:
            data = json.load(json_file)
        return data['test']
于 2020-01-30T19:59:28.467 回答