繁体   English   中英

AWS Dynamodb:调用 put_item 方法时出现验证错误

[英]AWS Dynamodb: validation error when calling put_item method

dynamodb 中的表有 2 列:timeStamp(string) 和 tableName(string) 当尝试将日期时间作为字符串插入时,失败并出现此错误:

"errorMessage": "Parameter validation failed:\nInvalid type for parameter Item.timeStamp, value: 2022-03-17 16:46:46.510210, type: <class 'str'>, valid types: <class 'dict'>

这是代码片段:

import json
import boto3
from datetime import datetime as dt

def put_data(timeStamp, tableName):
    dynamodb = boto3.client('dynamodb')
    
    
    #data = json.loads(json.dumps({"timeStamp":timeStamp ,"tableName":tableName}))
    
    #print(data)
    
    response = dynamodb.put_item(TableName='dev-data-migration-state', Item= {"timeStamp":timeStamp ,"tableName":tableName})
    
    print(response)


def lambda_handler(event, context):
    
    put_data(json.loads(json.dumps(str(dt.now()))), 'orders')

我试过只做 str(dt.now) 但这也没有用。

我找到了解决方案,我正在使用客户端 API,所以我需要将数据放入 DynamoDB-JSON 格式,数据类型为:

import json
import boto3
from datetime import datetime as dt

def put_data(timeStamp, tableName):
    dynamodb = boto3.client('dynamodb')

    response = dynamodb.put_item(TableName='dev-data-migration-state', 
    Item= {
        "timeStamp":{'S': timeStamp},
        "tableName":{'S': tableName}
    }
    )
    
    print(response)


def lambda_handler(event, context):
    
    put_data(str(dt.now()), 'orders')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM