Правильный синтаксис для нормализации файла JSON в пандах в облачной функции Google - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь открыть вложенный файл JSON из облачного хранилища Google в облачную функцию Google и преобразовать его в фрейм данных pandas, чтобы я мог обрабатывать данные дальше.

Обратите внимание, что я прочитал этот документ pandas.io.json.json_normalize с очень вложенным 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 она успешно развертывается.

Однако, когда я запускаю конечную точку функции, я получаю следующее сообщение об ошибке:

Error: could not handle the request

Мне сообщили, что часть кода (dict['organizations']) отключена, но других подсказок нет. К сожалению, у меня минимальный опыт работы с пандами, в основном в Анаконде.

Буду очень признателен за любые советы по устранению неполадок.

...