簡體   English   中英

使用 Python 將 JSON 數據插入 DynamoDB 時出錯

[英]Getting Error While Inserting JSON data to DynamoDB using Python

    HI,

    I am trying to put the json data into AWS dynamodb table using AWS Lambda , however i am getting an error like below. My json file is uploaded to S3 bucket.

    Parameter validation failed:
    Invalid type for parameter Item, value:
    {
        "IPList": [
            "10.1.0.36",
            "10.1.0.27"
        ],
        "TimeStamp": "2020-04-22 11:43:13",
        "IPCount": 2,
        "LoadBalancerName": "internal-ALB-1447121364.us-west-2.elb.amazonaws.com"
    }
    , type: <class 'str'>, valid types: <class 'dict'>: ParamValidationError

Below i my python script:-

    import boto3
    import json
    s3_client = boto3.client('s3')
    dynamodb = boto3.resource('dynamodb')
    def lambda_handler(event, context):
        bucket = event['Records'][0]['s3']['bucket']['name']
        json_file_name = event['Records'][0]['s3']['object']['key']
        json_object = s3_client.get_object(Bucket=bucket,Key=json_file_name)
        jsonFileReader = json_object['Body'].read()
        jsonDict = json.loads(jsonFileReader)
        table = dynamodb.Table('test')
        table.put_item(Item=jsonDict)

        return 'Hello'

下面是我的json內容

"{\"IPList\": [\"10.1.0.36\", \"10.1.0.27\"], \"時間戳\": \"2020-04-22 11:43:13\", \"IPCount \": 2, \"LoadBalancerName\": \"internal-ALB-1447121364.us-west-2.elb.amazonaws.com\"}"

有人可以幫助我,如何將數據插入 dynamodb。

json.loads(jsonFileReader)返回string ,但table.put_item()需要dict 請改用json.load()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM