Nim*_*jid 4 python json amazon-s3 amazon-web-services aws-lambda
我对 Amazon Web Services 比较陌生。
我需要有关使用 Python 从 S3 存储桶解析 JSON 文件的帮助。我能够使用连接到 lambda 函数的 S3 触发器从 S3 读取 JSON 文件,并将其显示在 Cloud-Watch 上。我需要有关如何解析 JSON 文件中的“结果”并计算“结果”的最大值、最小值和平均值的帮助。
这是我的 JSON 文件:
Student = [{"Student_ID": 1,
"Name":"Erik",
"ExamSubject": "English",
"Result": 72.3,
"ExamDate": "9/12/2020",
"Sex": "M"},
{"Student_ID": 2,
"Name":"Daniel",
"ExamSubject": "English",
"Result": 71,
"ExamDate": "9/12/2020",
"Sex": "M"},
{"Student_ID": 3,
"Name":"Michael",
"ExamSubject": "English",
"Result": 62,
"ExamDate": "9/12/2020",
"Sex": "M"},
{"Student_ID": 4,
"Name":"Sven",
"ExamSubject": "English",
"Result": 73,
"ExamDate": "9/12/2020",
"Sex": "M"},
{"Student_ID": 5,
"Name":"Jake",
"ExamSubject": "English",
"Result": 84.15,
"ExamDate": "9/12/2020",
"Sex": "M"},
]
print(Student)
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止在 lambda 函数上使用的代码:
import json
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
bucket = 'finalyearpro-aws'
key = 'StudentResults.json'
try:
data = s3.get_object(Bucket=bucket, Key=key)
json_data = data['Body'].read().decode('utf-8')
print (json_data)
except Exception as e:
raise e
Run Code Online (Sandbox Code Playgroud)
如何添加此代码以使其从 JSON 文件读取“结果”,对其进行分析(最大值、最小值、平均值)并显示在 Lambda 控制台上。
您可以使用加载文档boto3.resource('s3').Object(...).get()
,然后使用以下命令将其解析为 python json.loads()
:
import json
import boto3
s3 = boto3.resource('s3')
def lambda_handler(event, context):
bucket = 'finalyearpro-aws'
key = 'StudentResults.json'
obj = s3.Object(bucket, key)
data = obj.get()['Body'].read().decode('utf-8')
json_data = json.loads(data)
print(json_data)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29385 次 |
最近记录: |