[英]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.