【发布时间】:2021-06-28 10:33:55
【问题描述】:
我正在尝试从 S3 存储桶中读取 json 压缩文件并使用 aws lambda 服务写入 dynamo db 表,我选择了 python boto3 语言。读取 s3 数据后,尝试运行 json.loads 时出现此错误。
我的代码看起来像 -
import json
import gzip
import boto3
from io import BytesIO
s3 = boto3.resource('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.Object(bucket, json_file_name)
n = json_object.get()['Body'].read()
gzipfile = BytesIO(n)
gzipfile = gzip.GzipFile(fileobj=gzipfile)
content = gzipfile.read().decode('utf-8')
jsonDict = json.loads(content)
# Write items to dynamo db table
table = dynamodb.Table('mahbis01-AccountService-LedgerSummary-Duplicate')
table.put_item(Item=jsonDict)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
当我打印 content 时,我看到的值类似于 -
{
"Item":{
"SubsId":{
"S":"255_0_908764"
}
}
}{
"Item":{
"SubsId":{
"S":"255_0_908765"
}
}
}{
"Item":{
"SubsId":{
"S":"255_0_908766"
}
}
}{
"Item":{
"SubsId":{
"S":"255_0_908767"
}
}
}
我怎样才能摆脱这个并将数据写入 dynamo db?
【问题讨论】:
标签: python-3.x amazon-web-services aws-lambda boto3