将 float64 转换为 Dynamodb 的十进制数据类型

Converting float64 to decimal data type for Dynamo db

我有一个 pandas 数据框,如下所示:

Blast_ID    Campaign Campaign ID    Basic rate  Market cost 
ab12                  Glass               20    220
ab34                  Glass                     234
ab56                 Plastic              55    245
ab87                 Plastic              10    

我使用以下代码将具有 float64 数据类型的列转换为整数(df 是数据框):



for i in df.columns:
    
        print(i)
        print(df[i].dtypes)
        
        datatype = df[i].dtype
        df = df.fillna(0)
        if datatype == 'float64':
            print('yes')
            df[i] = df[i].astype(int)
           

当我尝试使用以下代码将此数据帧上传到发电机数据库时仍然如此:



    
    myl_list = df1.T.to_dict().values()
    print(myl_list)

   
   
    #read the dynamo resource
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('VisData')
    
    for Blast_ID in myl_list:
        table.put_item(Item=Blast_ID)

它给我的错误是:


"errorMessage": "Float types are not supported. Use Decimal types instead."

我该如何解决?非常感谢

在输入 table:

之前尝试转换成字符串
myl_list = df1.T.to_dict().values()
print(myl_list)

   
   
#read the dynamo resource
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('VisData')

for Blast_ID in myl_list:
    table.put_item(Item=str(Blast_ID))