Python 有没有办法在云函数中获取json文件内容?

Python 有没有办法在云函数中获取json文件内容?,python,google-cloud-platform,google-cloud-functions,google-cloud-storage,google-cloud-source-repos,Python,Google Cloud Platform,Google Cloud Functions,Google Cloud Storage,Google Cloud Source Repos,各位! 我确实需要从与main.py文件位于同一文件夹中的json文件中获取内容。问题是:谷歌云函数无法运行open()语句。出现以下错误: 没有这样的文件或目录:“mytest.json” 现在,我正在将我的文件上传到云存储中,但我希望将其上传到云源中那么,如何从云源获取json文件内容? 这是我在云计算源代码中的代码结构: . ├── main.py └── requirements.txt └── mytest.json mytest.json { 'test': 'Hello

各位!

我确实需要从与main.py文件位于同一文件夹中的json文件中获取内容。问题是:谷歌云函数无法运行
open()
语句。
出现以下错误:

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

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

这是我在云计算源代码中的代码结构:

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

{
    'test': 'Hello World!'
}
main.py:

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

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

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

在cloud shell上的ReadJson目录中,我执行了以下gcloud命令:

gcloud函数部署hello_world——运行时Python 37——触发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']
def hello_world(请求):
“”“响应任何HTTP请求。
Args:
请求(flask.request):HTTP请求对象。
返回:
响应文本或可转换为
响应对象使用
`作出回应。
"""
request_json=request.get_json()
如果request.args和request.args中的“message”:
return request.args.get('message')
elif request_json和request_json中的“message”:
返回请求_json['message']
其他:
将open('myfile.json')作为json\u文件:
data=json.load(json_文件)
返回数据['test']

您应该能够读取与功能一起部署的文件。请编辑问题,以显示实际的代码,这些代码没有按您期望的方式工作。您是否有输入错误?在你的问题中,你使用了文件名
mytest.json
,但在树中它显示了
myjson.json
。对不起,道格,我认为在这种情况下,代码并不重要,因为它非常简单。我刚刚尝试读取json,错误出现在
open()
行。谢谢,@Oqueli。实际上,我意识到我的json文件在主文件下面的一个目录中。因此,在
open()
中,我指定了相对路径而不是绝对路径。我很抱歉,伙计们,我画错了我的结构,但我感谢你们的帮助!