我正在尝试从Google Cloud Storage将嵌套的JSON文件打开到Google Cloud Function中,然后将其转换为pandas数据框,以便我可以进一步处理数据。
请注意,我已经阅读了此文档 pandas.io.json.json_normalize with very nested json
..但我不认为我的文件是我所说的“非常”嵌套的文件。这是我正在使用的JSON文件的启动方式:
[{"organizations": [], "uuid": "8bdddaf7351cf0bb38f5d1503b9078c1dd294155", "thread": {"social": {"gplus": {"shares": 0},
下面是我正在使用的代码。这些要求似乎都可以。
from google.cloud import storage
import pandas as pd
import json
from pandas.io.json import json_normalize
BUCKET_NAME = 'a9000'
STORAGE_CLIENT = storage.Client()
FILE_NAME = "demo_madsen/webhose/raw/blogs-20191201-20190228-001.json"
def download_json_from_gcs():
"""Downloads/read a json file from the bucket."""
bucket = STORAGE_CLIENT.get_bucket(BUCKET_NAME)
blob = bucket.blob(FILE_NAME)
contents = blob.download_as_string()
dict = json.loads(contents.decode("utf-8"))
df = pd.DataFrame(json_normalize(dict['organizations']))
我希望他们返回或下载结果。其余代码为:
df['engagement'] = df['thread.replies_count'] + df['thread.social.facebook.comments'] + df['thread.social.facebook.likes'] + df['thread.social.facebook.shares'] + df['thread.social.linkedin.shares'] + df['thread.social.pinterest.shares'] + df['thread.social.stumbledupon.shares'] + df['thread.social.vk.shares']
blob1 = bucket.blob("demo_madsen/webhose/raw/data02.csv")
blob1.upload_from_string(df.to_csv(index=False, header=True, encoding="utf-8"),content_type="application/octet-stream")
return
当我在Google Cloud Functions中部署该功能时,它会成功部署。
但是,当我触发函数的端点时,出现以下错误消息:
Error: could not handle the request
我被告知代码的(dict['organizations'])
部分已关闭,但没有其他线索。不幸的是,我对熊猫的经验很少,主要是在Anaconda。
任何有关如何解决此问题的建议将不胜感激。