Pandas AWS Lambda不支持的类型&书信电报;类别';numpy.int64'&燃气轮机&引用;:将数据上载到Dynamodb时出现类型错误

Pandas AWS Lambda不支持的类型&书信电报;类别';numpy.int64'&燃气轮机&引用;:将数据上载到Dynamodb时出现类型错误,pandas,amazon-web-services,parsing,aws-lambda,amazon-dynamodb,Pandas,Amazon Web Services,Parsing,Aws Lambda,Amazon Dynamodb,我有一个lambda函数,用于检查s3存储桶中的创建事件。如果一个文件被上传到bucket,我将解析该文件并将结果上传到dynamodb表。下面是我的函数的样子 import json import boto3 import pandas as pd import urllib import io import uuid import logging path = "sensor-data.csv" obj = s3.get_object(Bucket='sensor-bucket', Ke

我有一个lambda函数,用于检查s3存储桶中的创建事件。如果一个文件被上传到bucket,我将解析该文件并将结果上传到dynamodb表。下面是我的函数的样子

import json
import boto3
import pandas as pd
import urllib
import io
import uuid
import logging

path = "sensor-data.csv"

obj = s3.get_object(Bucket='sensor-bucket', Key=path)
csv_string = io.BytesIO(obj['Body'].read())

# Read a csv file and turn it into a DataFrame
df = pd.read_csv(csv_string, delimiter=';', engine ='c', encoding= 'unicode_escape')

# Rename columns as seen in the Lambda Function
df.rename(columns={'< 5,6m': 'SmallSize', '>= 5,6m': 'LargeSize'}, inplace=True)

df.Felt.replace(['1', '2', '3', '4'], ['lane_1', 'lane_2', 'lane_3', 'lane_4'], inplace=True)

# Filter out data column
data = df['data'] = df[['Navn', 'Vegreferanse', 'Fra', 'Til', 'Volum',
                        'Felt', 'SmallSize', 'LargeSize']].to_json(orient='records')
# Calculate traffic
traffic = df.groupby(['Felt'])['Volum'].sum().to_dict()

# Create a Dictionary for a new DataFrame
data = {'sensor-id': df.Trafikkregistreringspunkt.iloc[0], 'data': data,
        'date': df.Dato.iloc[0], 'Id': str(uuid.uuid4()), 'traffic': [traffic]}

# Create the dataframe
df2 = pd.DataFrame(data, index=[0])
print("Parsing complete. Writing to table...")

# Connect to dynamodb push items to the table
dynamoDb = boto3.resource('dynamodb')
table = dynamoDb.Table("sensor-data-table")

for line in df2.T.to_dict().values():
    table.put_item(Item=line)

print("Data processing completed successfully!")

我希望能在这个问题上得到一些帮助和澄清

原来我使用的是一个预先制作的lambda部署包,有点过时了。我创建了一个venv,然后使用一个构建脚本来创建zip文件。它工作得非常好

原来我使用的是一个预先制作的lambda部署包,有点过时了。我创建了一个venv,然后使用一个构建脚本来创建zip文件。它工作得非常好

错误发生在哪一行?它发生在表上。put_item(item=line)@danielgeffen您可能需要将numpy数据类型转换为python本机类型。我也这样做了@RaduDiță错误发生在哪一行?它发生在表上。put_item(item=line)@danielgeffen您可能需要将numpy数据类型转换为python本机类型。我也这样做了@拉杜迪
Unsupported type "<class 'numpy.int64'>" for value "1996": TypeError
dict_values([{'sensor-id': '11219V22151', 
'data': '[{"Some Data Here"}]', 
'date': '2020-01-01', 
'Id': '107d8ce5-c7d2-4b86-af83-d5ce7d11ce74', 
'traffic': {'Totalt': 1996, 'Totalt i retning Fianex Rv 415': 944, 
'Totalt i retning Stølen X Rv 420': 1052, 'lane_1': 1052, 'lane_2': 944}}])