如何使用Python函数正确调用Google云函数中的API



我是python的新手,希望通过Google Cloud Functions从API获取数据,以便以后可以将数据存储在Google Cloud Storage中。

数据以JSON格式提供,我想通过panda在表中转换它。

由于我真的不确定正确的语法,我想知道如何调用函数test_topic-下面的代码对我不起作用。我没有收到错误消息,但也没有得到结果。

我该怎么办才能拿到桌子?

import requests
import pandas as pd
def test_topic(df):
url = "https://api.domain.com/v1/"
payload={}
headers = {}
parameters = {
"api_key": "1234567890",
"start_date": "2020-01",
"end_date": "2021-01",
"format": "json" 
}
response = requests.request("GET", url, headers=headers, data=payload, params=parameters)
df = response.json()['visits']  
pd.DataFrame(df)

您的第一个问题是,您可能需要根据云功能验证您的请求。除非部署了云功能--allow-unauthenticated(允许任何人使用(,否则您必须使用访问(?(令牌(TOKEN(对请求进行身份验证:

token = os.getenv("TOKEN")
headers=["Authorization"] = "Bearer: {token}".format(token=token)}

出于开发目的,您可以使用gcloud获取令牌,并将其导出到您的代码:

export TOKEN=$(gcloud auth print-access-token)
python3 main.py

您还应该:

headers["Accept"] = "application/json"

对于调试,您应该考虑:

json_response = response.json()
print(json_response)

在您尝试访问visits之前,也许:

if "visits" in json_response:
# JSON response contains "visits"
else:
# JSON response does not contain "visits"

相关内容

  • 没有找到相关文章

最新更新