import json
import boto3
s3_client = boto3.client('s3')
dynamodb = boto3.resource('dynamodb',region_name='ca-central-1')
def lambda_handler(event, context, verbose=True):
bucket = event['Records'][0]['s3']['bucket']['name']
json_filename = event['Records'][0]['s3']['object']['key']
json_object = s3_client.get_object(Bucket=bucket, Key=json_filename)
json_file = json_object['Body'].read()
data_dict = json.loads(json_file)
table = dynamodb.Table('the_dynamodb_table_name')
with table.batch_writer() as batch:
for rec in data_dict:
batch.put_item(Item=rec)
尝试将 json 文件从 s3 批量上传到 dynamodb 但出现以下错误,不确定我是否遗漏了代码中的任何内容
Extra data: line 12 column 1 - line 24 column 1 (char 480 - 683): ValueError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 12, in lambda_handler
data_dict = json.loads(json_file)
File "/usr/lib64/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 367, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 12 column 1 - line 24 column 1 (char 480 - 683)