Может ли кто-нибудь помочь диагностировать и исправить проблему, поскольку эта ошибка продолжает ссылаться на объект «Контекст» (который я теоретизирую, интерпретирует schema_df как этот объект)?
Я пытался развернуть облачную функцию, которая работает локально в приведенной ниже части.
def convert_schema(results_df, schema_df):
"""Converts data types in dataframe to match BigQuery destination table"""
dict(schema_df)
print(schema_df)
for k in schema_df: #for each column name in the dictionary, convert the data type in the dataframe
results_df[k] = results_df[k].astype(schema_df.get(k))
results_df_transformed = results_df
print("Updated schema to match BigQuery destination table")
return results_df_transformed
schema_df = {'_comments': 'object',
'_direction': 'object',
'_fromst': 'object',
'_last_updt': 'datetime64',
'_length': 'float64',
'_lif_lat': 'float64',
'_lit_lat': 'float64',
'_lit_lon': 'float64',
'_strheading': 'object',
'_tost': 'object',
'_traffic': 'int64',
'segmentid': 'int64',
'start_lon': 'float64',
'street': 'object'
}
Однако он не работает и не распознает переданный объект как итеративный словарь.
File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 349, in run_background_function
_function_handler.invoke_user_function(event_object)
File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 215, in invoke_user_function
return call_user_function(request_or_event)
File "/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py", line 212, in call_user_function
event_context.Context(**request_or_event.context))
File "/user_code/main.py", line 43, in handler
results_df_transformed = convert_schema(results_df, schema_df)
File "/user_code/lib/data_ingestion.py", line 84, in convert_schema
dict(schema_df)
TypeError: 'Context' object is not iterable