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