簡體   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