Я пытаюсь загрузить среду данных Python в Watson Function Action. Я получил следующую ошибку.
{
"ошибка": "Внутренняя ошибка. Объект модуля типа не поддерживает сериализацию в формате JSON"
}
Я загружаю фрейм данных Watson Notebook в Watson Function Action, создавая функцию, которая возвращает Json, из записной книжки я проверяю ее, и она работает, если Json возвращается, но я не знаю, нужно ли мне что-то в функции
Код кадра данных
dfData = dfData[['SOURCE','NUMBER_ID','DATE_OPEN','DATE_CLOSE','COMPANY','CATEGORY','SUBCATEGORY','LOGICAL_NAME','CLR_TXT_SERVICIO','STATUS',]]
jsondf = dfData.to_dict(orient='record')
print(jsondf)
I have tried with:
#jsondf = dfData.to_json( orient='records')
print(jsondf)
#jsondf = jsondf.dumps(dfData, cls=JSONEncoder)
print(jsondf)
Но никто не работает
import sys
import types
import pandas as pd
import numpy as np
import ibm_boto3
import json as jsondf
import dateutil.relativedelta
from pandas import DataFrame
from botocore.client import Config
from datetime import datetime, date, time, timedelta
def main(dict):
def __iter__(self):
client_22e74e133ed74557a9183bca634893be = ibm_boto3.client(service_name='s3',
ibm_api_key_id='XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
ibm_auth_endpoint="https://iam.bluemix.net/oidc/token",
config=Config(signature_version='oauth'),
endpoint_url='https://s3-api.us-geo.objectstorage.service.networklayer.com')
streaming_body_14 = client_22e74e133ed74557a9183bca634893be.get_object(Bucket='clarotp-donotdelete-pr-jfrmyss7bazrmn', Key='Vista_Mayo.xlsx')['Body']
# add missing __iter__ method so pandas accepts body as file-like object
if not hasattr(streaming_body_14, "__iter__"): streaming_body_14.__iter__ = types.MethodType( __iter__, streaming_body_14 )
#convertir el streaming body del archivo Excel a dataframe
def load_df(fileobject,sheetname):
excelFile = pd.ExcelFile(fileobject)
dfData = excelFile.parse(sheetname)
return dfData
#se crea el dateframe (dfData)
dfData = load_df(streaming_body_14, 'Exportar Hoja de Trabajo')
dfData = dfData[dfData['NUMBER_ID'].str.contains('IM1010935', case=False)]
jsondf = dfData.to_dict(orient='record')
return {'message': [jsondf] }
Это функция, которую я создал, но она не работает
Результаты:
{
"ошибка": "Внутренняя ошибка. Объект модуля типа не поддерживает сериализацию в формате JSON"
}
Журналы:
[]