"errorMessage": "'queryStringParameters'", "errorType": "KeyError",
"errorMessage": "'queryStringParameters'", "errorType": "KeyError",
# import json
# print('Loading Clinsj functions')
# def lambda_handler(event, context):
# print("Received event: " + json.dumps(event,indent=2))
# return {"message":"Hello from Clinsj!"}
import json
# import boto3
# from flask_lambda import FlaskLambda
# from flask import request
# app = FlaskLambda(__name__)
# ddb=boto3.resource('dynamodb')
# table=dob.Table('clinsj-api2')
# @app.route("/", methods=['POST', 'GET'])
# def calculate_total_income():
def lambda_handler(event,context):
total = ''
T_T_I = ''
W_C_I = ''
T_B = ''
T_F_I = ''
C_T = ''
S_A_T = ''
H_C = ''
S_A_C = ''
W_C_I_C = ''
T_D_C = ''
T_E_L = ''
Score = ''
Score_2 = ''
Score_3 = ''
Knockout_11 = ''
Knockout_22 = ''
Knockout_33 = ''
Knockout_44 = ''
Knockout_55 = ''
Knockout_66 = ''
Factor = ''
WT_score11 = ''
ET_score11 = ''
TI_score11 = ''
WT_score22 = ''
ET_score22 = ''
TI_score22 = ''
Score_of_PB1 = ''
Score_of_SB1 = ''
TOS = ''
Anyknock_outs1 = ''
Set_score_to_zero1 = ''
Speedometer1 = ''
Age_Score1 = ''
Age_Score2 = ''
# if request.method == 'POST' and 'salary/wages' in request.form and 'other salary/wages' in request.form and
'tax_free_rental_income' in request.form and 'other_tax_free_income'
in request.form:
# Salary_or_wages = int(request.form.get('salary/wages'))
# Other_salary_wages = int(request.form.get('other salary/wages'))
# Tax_free_rental_income = int(
# request.form.get('tax_free_rental_income'))
# Other_tax_free_income = int(request.form.get('other_tax_free_income'))
# total = Salary_or_wages + Other_salary_wages +
# Tax_free_rental_income + Other_tax_free_income
Salary_or_wages = event["queryStringParameters"]['salary/wages']
Other_salary_wages = event["queryStringParameters"]['other salary/wages']
Tax_free_rental_income = event["queryStringParameters"]['tax_free_rental_income']
Other_tax_free_income = event["queryStringParameters"]['other_tax_free_income']
total = int(Salary_or_wages) + int(Other_salary_wages) + int(Tax_free_rental_income) + int(Other_tax_free_income)
# calculate_total_debts():
Total_Debt = ''
# if request.method == 'POST' and 'car_loans' in request.form and 'credit_card' in request.form and 'student_loans' in request.form
and 'mortgage_loans' in request.form:
# Car_Loans = int(request.form.get('car_loans'))
# Credit_Cards = int(request.form.get('credit_card'))
# Student_Loans = int(
# request.form.get('student_loans'))
# Mortgage_Loans = int(request.form.get('mortgage_loans'))
# Total_Debt = Car_Loans + Credit_Cards +
# Student_Loans + Mortgage_Loans
Car_Loans = event["queryStringParameters"]['car_loans']
Credit_Cards = event["queryStringParameters"]['credit_card']
Student_Loans = event["queryStringParameters"]['student_loans']
Mortgage_Loans = event["queryStringParameters"]['mortgage_loans']
Total_Debt = int(Car_Loans) + int(Credit_Cards) + int(Student_Loans) + int(Mortgage_Loans)
# Existing rate and Worst case rate():
E_Rate = ''
WC_Rate = ''
# if request.method == 'POST' or 'existing_rate' in request.form and 'worst_case_rate' in request.form:
# Existing_Rate = int(request.form.get('existing_rate'))
# Wrost_Case_Rate = 5
# E_Rate = Existing_Rate
# WC_Rate = Existing_Rate + Wrost_Case_Rate
Existing_Rate = event["queryStringParameters"]['existing_rate']
Wrost_Case_Rate = 5
E_Rate = Existing_Rate
WC_Rate = int(Existing_Rate) + int(Wrost_Case_Rate)
# calculate_total_security():
total2 = ''
# if request.method == 'POST' or 'secured_in_property' in request.form and 'other_security' in request.form:
# Secured_In_Property = int(request.form.get('secured_in_property'))
# Other_Security = int(request.form.get('other_security'))
# total2 = Secured_In_Property + Other_Security
Secured_In_Property = event["queryStringParameters"]['secured_in_property']
Other_Security = event["queryStringParameters"]['other_security']
total2 = int(Secured_In_Property) + int(Other_Security)
# house_located_in_oslo and primary_residence():
HLIO = ''
PR = ''
# if request.method == 'POST' or 'house_located_in_oslo' in request.form or 'primary_residence' in request.form:
# House_Located_In_Oslo = str(request.form.get('house_located_in_oslo'))
# Primary_Residence = str(request.form.get('primary_residence'))
# HLIO = House_Located_In_Oslo
# PR = Primary_Residence
House_Located_In_Oslo = event["queryStringParameters"]['house_located_in_oslo']
Primary_Residence = event["queryStringParameters"]['primary_residence']
HLIO = House_Located_In_Oslo
PR = Primary_Residence
# calculate_annual_household_cost():
total3 = ''
# if request.method == 'POST' or 'number_of_adults' in request.form or 'number_of_childerns' in request.form and
'number_of_cars' in request.form:
# Number_Of_Adults = int(request.form.get('number_of_adults'))
# Number_Of_Childerns = int(request.form.get('number_of_childerns'))
# Number_Of_Cars = int(request.form.get('number_of_cars'))
# Other_Household_spend = (
# Number_Of_Adults + Number_Of_Childerns)*393 + int(2590) + Number_Of_Cars * 2608
# total3 = (Number_Of_Adults * 7500 + Number_Of_Childerns *
# 5500 + Other_Household_spend) * 12
Number_Of_Adults = event["queryStringParameters"]['number_of_adults']
Number_Of_Childerns = event["queryStringParameters"]['number_of_childerns']
Number_Of_Cars = event["queryStringParameters"]['number_of_cars']
Other_Household_spend = (int(Number_Of_Adults) + int(Number_Of_Childerns))*393 + int(2590) + int(Number_Of_Cars) * 2608
total3 = (int(Number_Of_Adults) * 7500 + int(Number_Of_Childerns) *5500 + int(Other_Household_spend)) * 12
# d = date.today().day
# m = date.today().month
# y = date.today().year
# # Primary_Borrower():
# DOB1 = ''
# WT1 = ''
# ET1 = ''
# TI1 = ''
# age1 = ''
# Day11 = ''
# Month11 = ''
# Year11 = ''
# # if request.method == 'POST' or 'date_of_birth1' in request.form or 'worktype1' in request.form and 'employer_type1' in
request.form and 'total_income1' in request.form:
# # if request.method == 'POST' or 'day1' in request.form or 'month1' in request.form or 'year1' in request.form or 'worktype1' in
request.form and 'employer_type1' in request.form and 'total_income1'
in request.form:
# # Day1 = int(request.form.get('day1'))
# # Month1 = int(request.form.get('month1'))
# # Year1 = int(request.form.get('year1'))
# # Day11 = Day1
# # Month11 = Month1
# # Year11 = Year1
# Day1 = event["queryStringParameters"]['day1']
# Month1 = event["queryStringParameters"]['month1']
# Year1 = event["queryStringParameters"]['year1']
# Day11 = int(Day1)
# Month11 = int(Month1)
# Year11 = int(Year1)
# if Day1 > d and Month1 >= m:
# # dd = (d+30)- Day1
# # mm = ((m - 1) + 12) - Month1
# yy = (y-1) - Year1
# age1 = int(yy)
# elif Day1 > d and Month1 < m:
# # dd = (d+30)- Day1
# # mm = ((m - 1) + 12) - Month1
# yy = y - Year1
# age1 = int(yy)
# elif Day1 < d and Month1 > m:
# # dd = (d+30)- Day1
# # mm = ((m - 1) + 12) - Month1
# yy = (y-1) - Year1
# age1 = int(yy)
# else:
# yy = y - Year1
# age1 = int(yy)
# # Age score calculation for PB
# if age1 < 30:
# Age_Score = 0
# Age_Score1 = Age_Score
# elif age1 < 50:
# Age_Score = 20
# Age_Score1 = Age_Score
# elif age1 < 60:
# Age_Score = -10
# Age_Score1 = Age_Score
# elif age1 < 110:
# Age_Score = 0
# Age_Score1 = Age_Score
# # Wt score calculation:
# Worktype = str(request.form.get('worktype1'))
# if Worktype == "Fixed":
# WT_score1 = 20
# WT_score11 = WT_score1
# else:
# WT_score1 = 0
# WT_score11 = WT_score1
# Employer_Type = str(request.form.get('employer_type1'))
# if Employer_Type == "Public Sector":
# ET_score1 = 20
# ET_score11 = ET_score1
# else:
# ET_score1 = 0
# ET_score11 = ET_score1
# # TI score calculation:
# Total_Income = int(request.form.get('total_income1'))
# if Total_Income < 500000:
# TI_score1 = 0
# TI_score11 = TI_score1
# elif Total_Income < 700000:
# TI_score1 = 20
# TI_score11 = TI_score1
# elif Total_Income < 900000:
# TI_score1 = 50
# TI_score11 = TI_score1
# elif Total_Income < 1100000:
# TI_score1 = 100
# TI_score11 = TI_score1
# # DOB1 = Date_Of_Birth
# WT1 = Worktype
# ET1 = Employer_Type
# TI1 = Total_Income
# # Other Elements - attractiveness of customer
# # Secondary_Borrower():
# DOB2 = ''
# WT2 = ''
# ET2 = ''
# TI2 = ''
# age2 = ''
# Day22 = ''
# Month22 = ''
# Year22 = ''
# if request.method == 'POST' or 'date_of_birth2' in request.form or 'worktype2' in request.form and 'employer_type2' in
request.form and 'total_income2' in request.form:
# # Date_Of_Birth2 = date(request.form.get(int('date_of_birth2')))
# Day2 = event["queryStringParameters"]['day12']
# Month2 = event["queryStringParameters"]['month2']
# Year2 = event["queryStringParameters"]['year2']
# Day22 = Day2
# Month22 = Month2
# Year22 = Year2
# if Day2 > d and Month2 >= m:
# # dd = (d+30)- Day1
# # mm = ((m - 1) + 12) - Month1
# yy2 = (y-1) - Year2
# age2 = int(yy2)
# elif Day2 > d and Month2 < m:
# # dd = (d+30)- Day1
# # mm = ((m - 1) + 12) - Month1
# yy2 = y - Year2
# age2 = int(yy2)
# elif Day2 < d and Month2 > m:
# # dd = (d+30)- Day1
# # mm = ((m - 1) + 12) - Month1
# yy2 = (y-1) - Year2
# age2 = int(yy2)
# else:
# yy2 = y - Year2
# age2 = int(yy2)
# # Age score calculation for SB
# if age2 < 30:
# Age_Score_2 = 0
# Age_Score2 = Age_Score_2
# elif age2 < 50:
# Age_Score_2 = 20
# Age_Score2 = Age_Score_2
# elif age2 < 60:
# Age_Score_2 = -10
# Age_Score2 = Age_Score_2
# elif age2 < 110:
# Age_Score_2 = 0
# Age_Score2 = Age_Score_2
# # age_2 = d - Year2 - ((m, d) < (Month2, Day2))
# # age2 = age_2
# # today = date.today()
# # age_2 = today.year - Date_Of_Birth2.year - \
# # ((today.month, today.day) < (Date_Of_Birth2.month, Date_Of_Birth2.day))
# # age2 = age_2
# # Date_Of_Birth2.year
# # particular_date = datetime(request.form.get('date_of_birth2'))
# # new_date = datetime.today() - particular_date
# # age=new_date.days
# Worktype2 = str(request.form.get('worktype2'))
# if Worktype2 == "Fixed":
# WT_score2 = 20
# WT_score22 = WT_score2
# else:
# WT_score2 = 0
# WT_score22 = WT_score2
# Employer_Type2 = str(request.form.get('employer_type2'))
# if Employer_Type2 == "Public Sector":
# ET_score2 = 20
# ET_score22 = ET_score2
# else:
# ET_score2 = 0
# ET_score22 = ET_score2
# Total_Income2 = int(request.form.get('total_income2'))
# if Total_Income2 < 500000:
# TI_score2 = 0
# TI_score22 = TI_score2
# elif Total_Income2 < 700000:
# TI_score2 = 20
# TI_score22 = TI_score2
# elif Total_Income2 < 900000:
# TI_score2 = 50
# TI_score22 = TI_score2
# elif Total_Income2 < 1100000:
# TI_score2 = 100
# TI_score22 = TI_score2
# # DOB2 = Date_Of_Birth2
# WT2 = Worktype2
# ET2 = Employer_Type2
# TI2 = Total_Income2
# Total Score of Other Elements - attractiveness of customer
# Score of primary borrower
# Score_of_PB = WT_score1+ET_score1+TI_score1+Age_Score1
# Score_of_PB1 = Score_of_PB
# Score of Secondary borrower
# Score_of_SB = WT_score2+ET_score2+TI_score22+Age_Score2
# Score_of_SB1 = Score_of_SB
# Qualifying - ability to pay worst case rates
# Total taxable income
Total_Taxable_Income = Salary_or_wages + Other_salary_wages
T_T_I = Total_Taxable_Income
# Worst case interest:
Wrost_Case_Interest = (Total_Debt * (WC_Rate/100))
W_C_I = Wrost_Case_Interest
if(W_C_I < 25):
Score = 0
Knockout_1 = 'True'
Knockout_11 = Knockout_1
Knockscore = 0
elif(W_C_I >= 25 and W_C_I < 50):
Score = 250
Knockout_2 = 'False'
Knockout_22 = Knockout_2
Knockscore = 0
elif(W_C_I >= 50 and W_C_I < 75):
Score = 260
Knockout_2 = 'False'
Knockout_22 = Knockout_2
Knockscore = 0
elif(W_C_I >= 75 and W_C_I < 100):
Score = 270
Knockout_2 = 'False'
Knockout_22 = Knockout_2
Knockscore = 0
elif (W_C_I >= 100):
Score = 300
Knockout_2 = 'False'
Knockout_22 = Knockout_2
Knockscore = 0
# Taxable_Base
Taxable_Base = Total_Taxable_Income - Wrost_Case_Interest
T_B = Taxable_Base
# Calculated_Tax
Calculated_Tax = round((T_B*0.4054)-62000)
C_T = Calculated_Tax
# Tax_free_income
Tax_Free_Income = Tax_free_rental_income + Other_tax_free_income
T_F_I = Tax_Free_Income
# Surplus After Tax
Surplus_After_Tax = Total_Taxable_Income - \
Wrost_Case_Interest - Calculated_Tax + Tax_Free_Income
S_A_T = Surplus_After_Tax
# Household Cost
Household_Cost = total3
H_C = Household_Cost
# Surplus After Costs
Surplus_After_Costs = S_A_T - H_C
S_A_C = Surplus_After_Costs
# Worst case interest cover:
Worst_Case_Interest_Cover = round(-(S_A_C / -W_C_I)*100)
W_C_I_C = Worst_Case_Interest_Cover
# Qualifying - total debt cover
Total_Debt_Cover = round((Total_Debt / total), 2)
T_D_C = (Total_Debt_Cover)
if(T_D_C >= 4.00):
Score_2 = 0
Knockout_3 = 'True'
Knockout_33 = Knockout_3
Knockscore2 = 1
elif(T_D_C > 3.50 and T_D_C <= 4.00):
Score_2 = 250
Knockout_4 = 'False'
Knockout_44 = Knockout_4
Knockscore2 = 0
elif(T_D_C > 2.50 and T_D_C <= 3.50):
Score_2 = 260
Knockout_4 = 'False'
Knockout_44 = Knockout_4
Knockscore2 = 0
elif(T_D_C > 2.00 and T_D_C <= 2.50):
Score_2 = 270
Knockout_4 = 'False'
Knockout_44 = Knockout_4
Knockscore2 = 0
elif (T_D_C <= 2.00):
Score_2 = 300
Knockout_4 = 'False'
Knockout_44 = Knockout_4
Knockscore2 = 0
# Qualifying - Equity levels
Total_Equity_Level = round((1-(Total_Debt/total2))*100)
T_E_L = Total_Equity_Level
if(T_E_L < 15):
Score_3 = 0
Knockout_5 = 'True'
Knockout_55 = Knockout_5
Knockscore3 = 1
elif(T_E_L >= 15 and T_E_L < 30):
Score_3 = 100
Knockout_6 = 'False'
Knockout_66 = Knockout_6
Knockscore3 = 0
elif(T_E_L >= 30 and T_E_L < 50):
Score_3 = 150
Knockout_6 = 'False'
Knockout_66 = Knockout_6
Knockscore3 = 0
elif(T_E_L >= 50 and T_E_L < 100):
Score_3 = 230
Knockout_6 = 'False'
Knockout_66 = Knockout_6
Knockscore3 = 0
elif (T_E_L >= 100):
Score_3 = 300
Knockout_6 = 'False'
Knockout_66 = Knockout_6
Knockscore3 = 0
# Total_Overall_Score
Total_Overall_Score = Score + Score_2 + Score_3 + Score_of_PB1 + Score_of_SB1
TOS = Total_Overall_Score
# Any knock outs - e.g. where they are below minimum regulatory:
if(Knockscore and Knockscore2 and Knockscore3 == 0):
Anyknock_outs = 0
Anyknock_outs1 = Anyknock_outs
else:
Anyknock_outs = Knockscore + Knockscore2 + Knockscore3
# If there was a knock out - set score to zero:
if(Anyknock_outs > 0):
Set_score_to_zero = 0
Set_score_to_zero1 = Set_score_to_zero
else:
Set_score_to_zero = Total_Overall_Score
Set_score_to_zero1 = Set_score_to_zero
# Current rate assesment(Factor):
if(E_Rate < 1.50):
Score_4 = 10
Factor = Score_4
elif(E_Rate >= 1.5 and E_Rate < 1.75):
Score_4 = 25
Factor = Score_4
elif(E_Rate >= 1.75 and E_Rate < 2.0):
Score_4 = 50
Factor = Score_4
elif(E_Rate >= 2.0 and E_Rate < 3.0):
Score_4 = 75
Factor = Score_4
elif (E_Rate >= 3.0):
Score_4 = 100
Factor = Score_4
# Speedometer:
Speedometer = (Score_4/100) * Total_Overall_Score
Speedometer1 = Speedometer
# return render_template("index.html", Age_Score11=Age_Score1, Age_Score22=Age_Score2, Day_1=Day11, Month_1=Month11, Year_1=Year11,
Day_2=Day22, Month_2=Month22, Year_2=Year22, age11=age1, age22=age2,
Speedometer11=Speedometer1, Set_score_to_zero11=Set_score_to_zero1,
Anyknock_outs11=Anyknock_outs1, TOS1=TOS, Score_of_PB11=Score_of_PB1,
Score_of_SB11=Score_of_SB1, WT_score_1=WT_score11,
ET_score_1=ET_score11, TI_score_1=TI_score11, WT_score_2=WT_score22,
ET_score_2=ET_score22, TI_score_2=TI_score22, Score1=Score,
Knockout_1=Knockout_11, Knockout_2=Knockout_22, Score2=Score_2,
Knockout_3=Knockout_33, Knockout_4=Knockout_44, Score3=Score_3,
Knockout_5=Knockout_55, Knockout_6=Knockout_66, Factor_1=Factor,
total_income=total, total_debts=Total_Debt, total_security=total2,
annual_household_cost=total3, output_wt1=WT1, output_et1=ET1,
output_ti1=TI1, output_wt2=WT2, output_et2=ET2, output_ti2=TI2,
hlio=HLIO, pr=PR, ER=E_Rate, WCR=WC_Rate, TTI=T_T_I, WCI=W_C_I,
TB=T_B, TFI=T_F_I, CT=C_T, SAT=S_A_T, HC=H_C, SAC=S_A_C, WCIC=W_C_I_C,
TDC=T_D_C, TEL=T_E_L)
# output_dob1=DOB1, output_dob2=DOB2,
# if __name__ == '__main__':
# app.run(host="127.0.0.1", port=80, debug=True,)
response["headers"] = event["headers"]
return (
json.dumps(Age_Score11=Age_Score1, Age_Score22=Age_Score2, Day_1=Day11, Month_1=Month11, Year_1=Year11, Day_2=Day22,
Month_2=Month22, Year_2=Year22, age11=age1, age22=age2,
Speedometer11=Speedometer1, Set_score_to_zero11=Set_score_to_zero1,
Anyknock_outs11=Anyknock_outs1, TOS1=TOS, Score_of_PB11=Score_of_PB1,
Score_of_SB11=Score_of_SB1, WT_score_1=WT_score11,
ET_score_1=ET_score11, TI_score_1=TI_score11, WT_score_2=WT_score22,
ET_score_2=ET_score22, TI_score_2=TI_score22, Score1=Score,
Knockout_1=Knockout_11,
Knockout_2=Knockout_22, Score2=Score_2, Knockout_3=Knockout_33, Knockout_4=Knockout_44, Score3=Score_3,
Knockout_5=Knockout_55, Knockout_6=Knockout_66, Factor_1=Factor,
total_income=total, total_debts=Total_Debt, total_security=total2,
annual_household_cost=total3, output_wt1=WT1, output_et1=ET1,
output_ti1=TI1, output_wt2=WT2, output_et2=ET2, output_ti2=TI2,
hlio=HLIO, pr=PR, ER=E_Rate, WCR=WC_Rate, TTI=T_T_I, WCI=W_C_I,
TB=T_B, TFI=T_F_I, CT=C_T, SAT=S_A_T, HC=H_C, SAC=S_A_C, WCIC=W_C_I_C,
TDC=T_D_C, TEL=T_E_L),
200,
{'Content-Type': "application/json"}
)
#我得到的错误是:
测试事件名称
测试
响应
{
"errorMessage": "'queryStringParameters'",
"errorType": "KeyError",
“堆栈跟踪”: [
“文件“/var/task/lambda_function.py”,第 67 行,在 lambda_handler\n Salary_or_wages = event["queryStringParameters"]['salary/wages']\n"
]
}
函数日志
开始 RequestId:0c3fcadc-3967-4381-b176-1ec50045b28c 版本:$LATEST
[错误] 键错误:'queryStringParameters'
追溯(最近一次通话):
文件“/var/task/lambda_function.py”,第 67 行,在 lambda_handler 中
Salary_or_wages = 事件["queryStringParameters"]['salary/wages']
您的 API 网关设置为代理 Lambda 集成还是 Lambda 集成?每个都有一个不同的事件结构,它会改变键所在的位置。
记录事件(print(event)
可以很好地用于测试 运行)然后点击您的端点并查看事件结构是什么样的。这会告诉你键应该在哪里,或者你是否有错误的键值(事件结构不会经常更新,但它确实会发生,教程视频很快就会过时)
Lambda 的事件(事实上,所有 AWS 中的所有事件)只是 JSON 个对象。使用 python,它直接转换为字典,因此弄清楚正确的键结构可能有点奇怪,因为关于 AWS Sphere 中各种事件的文档分散在整个文档中,很难找到。
我通常在我的控制台上保留一个 lambda,它所做的只是 print(event)
然后将它连接到我当时尝试使用的任何触发器,这样我就可以看到它看起来漂亮而清晰。
# import json # print('Loading Clinsj functions') # def lambda_handler(event, context): # print("Received event: " + json.dumps(event,indent=2)) # return {"message":"Hello from Clinsj!"} import json # import boto3 # from flask_lambda import FlaskLambda # from flask import request # app = FlaskLambda(__name__) # ddb=boto3.resource('dynamodb') # table=dob.Table('clinsj-api2') # @app.route("/", methods=['POST', 'GET']) # def calculate_total_income(): def lambda_handler(event,context): total = '' T_T_I = '' W_C_I = '' T_B = '' T_F_I = '' C_T = '' S_A_T = '' H_C = '' S_A_C = '' W_C_I_C = '' T_D_C = '' T_E_L = '' Score = '' Score_2 = '' Score_3 = '' Knockout_11 = '' Knockout_22 = '' Knockout_33 = '' Knockout_44 = '' Knockout_55 = '' Knockout_66 = '' Factor = '' WT_score11 = '' ET_score11 = '' TI_score11 = '' WT_score22 = '' ET_score22 = '' TI_score22 = '' Score_of_PB1 = '' Score_of_SB1 = '' TOS = '' Anyknock_outs1 = '' Set_score_to_zero1 = '' Speedometer1 = '' Age_Score1 = '' Age_Score2 = '' # if request.method == 'POST' and 'salary/wages' in request.form and 'other salary/wages' in request.form and
'tax_free_rental_income' in request.form and 'other_tax_free_income' in request.form: # Salary_or_wages = int(request.form.get('salary/wages')) # Other_salary_wages = int(request.form.get('other salary/wages')) # Tax_free_rental_income = int( # request.form.get('tax_free_rental_income')) # Other_tax_free_income = int(request.form.get('other_tax_free_income')) # total = Salary_or_wages + Other_salary_wages +
# Tax_free_rental_income + Other_tax_free_incomeSalary_or_wages = event["queryStringParameters"]['salary/wages'] Other_salary_wages = event["queryStringParameters"]['other salary/wages'] Tax_free_rental_income = event["queryStringParameters"]['tax_free_rental_income'] Other_tax_free_income = event["queryStringParameters"]['other_tax_free_income'] total = int(Salary_or_wages) + int(Other_salary_wages) + int(Tax_free_rental_income) + int(Other_tax_free_income) # calculate_total_debts(): Total_Debt = '' # if request.method == 'POST' and 'car_loans' in request.form and 'credit_card' in request.form and 'student_loans' in request.form
and 'mortgage_loans' in request.form: # Car_Loans = int(request.form.get('car_loans')) # Credit_Cards = int(request.form.get('credit_card')) # Student_Loans = int( # request.form.get('student_loans')) # Mortgage_Loans = int(request.form.get('mortgage_loans')) # Total_Debt = Car_Loans + Credit_Cards +
# Student_Loans + Mortgage_Loans Car_Loans = event["queryStringParameters"]['car_loans'] Credit_Cards = event["queryStringParameters"]['credit_card'] Student_Loans = event["queryStringParameters"]['student_loans'] Mortgage_Loans = event["queryStringParameters"]['mortgage_loans'] Total_Debt = int(Car_Loans) + int(Credit_Cards) + int(Student_Loans) + int(Mortgage_Loans)# Existing rate and Worst case rate(): E_Rate = '' WC_Rate = '' # if request.method == 'POST' or 'existing_rate' in request.form and 'worst_case_rate' in request.form: # Existing_Rate = int(request.form.get('existing_rate')) # Wrost_Case_Rate = 5 # E_Rate = Existing_Rate # WC_Rate = Existing_Rate + Wrost_Case_Rate Existing_Rate = event["queryStringParameters"]['existing_rate'] Wrost_Case_Rate = 5 E_Rate = Existing_Rate WC_Rate = int(Existing_Rate) + int(Wrost_Case_Rate) # calculate_total_security(): total2 = '' # if request.method == 'POST' or 'secured_in_property' in request.form and 'other_security' in request.form: # Secured_In_Property = int(request.form.get('secured_in_property')) # Other_Security = int(request.form.get('other_security')) # total2 = Secured_In_Property + Other_Security Secured_In_Property = event["queryStringParameters"]['secured_in_property'] Other_Security = event["queryStringParameters"]['other_security'] total2 = int(Secured_In_Property) + int(Other_Security) # house_located_in_oslo and primary_residence(): HLIO = '' PR = '' # if request.method == 'POST' or 'house_located_in_oslo' in request.form or 'primary_residence' in request.form: # House_Located_In_Oslo = str(request.form.get('house_located_in_oslo')) # Primary_Residence = str(request.form.get('primary_residence')) # HLIO = House_Located_In_Oslo # PR = Primary_Residence House_Located_In_Oslo = event["queryStringParameters"]['house_located_in_oslo'] Primary_Residence = event["queryStringParameters"]['primary_residence'] HLIO = House_Located_In_Oslo PR = Primary_Residence # calculate_annual_household_cost(): total3 = '' # if request.method == 'POST' or 'number_of_adults' in request.form or 'number_of_childerns' in request.form and
'number_of_cars' in request.form: # Number_Of_Adults = int(request.form.get('number_of_adults')) # Number_Of_Childerns = int(request.form.get('number_of_childerns')) # Number_Of_Cars = int(request.form.get('number_of_cars')) # Other_Household_spend = ( # Number_Of_Adults + Number_Of_Childerns)*393 + int(2590) + Number_Of_Cars * 2608
# total3 = (Number_Of_Adults * 7500 + Number_Of_Childerns * # 5500 + Other_Household_spend) * 12 Number_Of_Adults = event["queryStringParameters"]['number_of_adults'] Number_Of_Childerns = event["queryStringParameters"]['number_of_childerns'] Number_Of_Cars = event["queryStringParameters"]['number_of_cars'] Other_Household_spend = (int(Number_Of_Adults) + int(Number_Of_Childerns))*393 + int(2590) + int(Number_Of_Cars) * 2608 total3 = (int(Number_Of_Adults) * 7500 + int(Number_Of_Childerns) *5500 + int(Other_Household_spend)) * 12 # d = date.today().day # m = date.today().month # y = date.today().year # # Primary_Borrower(): # DOB1 = '' # WT1 = '' # ET1 = '' # TI1 = '' # age1 = '' # Day11 = '' # Month11 = '' # Year11 = '' # # if request.method == 'POST' or 'date_of_birth1' in request.form or 'worktype1' in request.form and 'employer_type1' in
request.form and 'total_income1' in request.form: # # if request.method == 'POST' or 'day1' in request.form or 'month1' in request.form or 'year1' in request.form or 'worktype1' in request.form and 'employer_type1' in request.form and 'total_income1' in request.form: # # Day1 = int(request.form.get('day1')) # # Month1 = int(request.form.get('month1')) # # Year1 = int(request.form.get('year1')) # # Day11 = Day1 # # Month11 = Month1 # # Year11 = Year1 # Day1 = event["queryStringParameters"]['day1'] # Month1 = event["queryStringParameters"]['month1'] # Year1 = event["queryStringParameters"]['year1'] # Day11 = int(Day1) # Month11 = int(Month1) # Year11 = int(Year1) # if Day1 > d and Month1 >= m: # # dd = (d+30)- Day1 # # mm = ((m - 1) + 12) - Month1 # yy = (y-1) - Year1 # age1 = int(yy) # elif Day1 > d and Month1 < m: # # dd = (d+30)- Day1 # # mm = ((m - 1) + 12) - Month1 # yy = y - Year1 # age1 = int(yy) # elif Day1 < d and Month1 > m: # # dd = (d+30)- Day1 # # mm = ((m - 1) + 12) - Month1 # yy = (y-1) - Year1 # age1 = int(yy) # else: # yy = y - Year1 # age1 = int(yy)
# # Age score calculation for PB # if age1 < 30: # Age_Score = 0 # Age_Score1 = Age_Score # elif age1 < 50: # Age_Score = 20 # Age_Score1 = Age_Score # elif age1 < 60: # Age_Score = -10 # Age_Score1 = Age_Score # elif age1 < 110: # Age_Score = 0 # Age_Score1 = Age_Score # # Wt score calculation: # Worktype = str(request.form.get('worktype1')) # if Worktype == "Fixed": # WT_score1 = 20 # WT_score11 = WT_score1 # else: # WT_score1 = 0 # WT_score11 = WT_score1 # Employer_Type = str(request.form.get('employer_type1')) # if Employer_Type == "Public Sector": # ET_score1 = 20 # ET_score11 = ET_score1 # else: # ET_score1 = 0 # ET_score11 = ET_score1 # # TI score calculation: # Total_Income = int(request.form.get('total_income1')) # if Total_Income < 500000: # TI_score1 = 0 # TI_score11 = TI_score1 # elif Total_Income < 700000: # TI_score1 = 20 # TI_score11 = TI_score1 # elif Total_Income < 900000: # TI_score1 = 50 # TI_score11 = TI_score1 # elif Total_Income < 1100000: # TI_score1 = 100 # TI_score11 = TI_score1 # # DOB1 = Date_Of_Birth # WT1 = Worktype # ET1 = Employer_Type # TI1 = Total_Income # # Other Elements - attractiveness of customer # # Secondary_Borrower(): # DOB2 = '' # WT2 = '' # ET2 = '' # TI2 = '' # age2 = '' # Day22 = '' # Month22 = '' # Year22 = '' # if request.method == 'POST' or 'date_of_birth2' in request.form or 'worktype2' in request.form and 'employer_type2' in
request.form and 'total_income2' in request.form: # # Date_Of_Birth2 = date(request.form.get(int('date_of_birth2'))) # Day2 = event["queryStringParameters"]['day12'] # Month2 = event["queryStringParameters"]['month2'] # Year2 = event["queryStringParameters"]['year2'] # Day22 = Day2 # Month22 = Month2 # Year22 = Year2 # if Day2 > d and Month2 >= m: # # dd = (d+30)- Day1 # # mm = ((m - 1) + 12) - Month1 # yy2 = (y-1) - Year2 # age2 = int(yy2) # elif Day2 > d and Month2 < m: # # dd = (d+30)- Day1 # # mm = ((m - 1) + 12) - Month1 # yy2 = y - Year2 # age2 = int(yy2) # elif Day2 < d and Month2 > m: # # dd = (d+30)- Day1 # # mm = ((m - 1) + 12) - Month1 # yy2 = (y-1) - Year2 # age2 = int(yy2) # else: # yy2 = y - Year2 # age2 = int(yy2)
# # Age score calculation for SB # if age2 < 30: # Age_Score_2 = 0 # Age_Score2 = Age_Score_2 # elif age2 < 50: # Age_Score_2 = 20 # Age_Score2 = Age_Score_2 # elif age2 < 60: # Age_Score_2 = -10 # Age_Score2 = Age_Score_2 # elif age2 < 110: # Age_Score_2 = 0 # Age_Score2 = Age_Score_2 # # age_2 = d - Year2 - ((m, d) < (Month2, Day2)) # # age2 = age_2 # # today = date.today() # # age_2 = today.year - Date_Of_Birth2.year - \ # # ((today.month, today.day) < (Date_Of_Birth2.month, Date_Of_Birth2.day)) # # age2 = age_2 # # Date_Of_Birth2.year # # particular_date = datetime(request.form.get('date_of_birth2')) # # new_date = datetime.today() - particular_date # # age=new_date.days # Worktype2 = str(request.form.get('worktype2')) # if Worktype2 == "Fixed": # WT_score2 = 20 # WT_score22 = WT_score2 # else: # WT_score2 = 0 # WT_score22 = WT_score2 # Employer_Type2 = str(request.form.get('employer_type2')) # if Employer_Type2 == "Public Sector": # ET_score2 = 20 # ET_score22 = ET_score2 # else: # ET_score2 = 0 # ET_score22 = ET_score2 # Total_Income2 = int(request.form.get('total_income2')) # if Total_Income2 < 500000: # TI_score2 = 0 # TI_score22 = TI_score2 # elif Total_Income2 < 700000: # TI_score2 = 20 # TI_score22 = TI_score2 # elif Total_Income2 < 900000: # TI_score2 = 50 # TI_score22 = TI_score2 # elif Total_Income2 < 1100000: # TI_score2 = 100 # TI_score22 = TI_score2 # # DOB2 = Date_Of_Birth2 # WT2 = Worktype2 # ET2 = Employer_Type2 # TI2 = Total_Income2 # Total Score of Other Elements - attractiveness of customer # Score of primary borrower # Score_of_PB = WT_score1+ET_score1+TI_score1+Age_Score1 # Score_of_PB1 = Score_of_PB # Score of Secondary borrower # Score_of_SB = WT_score2+ET_score2+TI_score22+Age_Score2 # Score_of_SB1 = Score_of_SB # Qualifying - ability to pay worst case rates # Total taxable income Total_Taxable_Income = Salary_or_wages + Other_salary_wages T_T_I = Total_Taxable_Income # Worst case interest: Wrost_Case_Interest = (Total_Debt * (WC_Rate/100)) W_C_I = Wrost_Case_Interest if(W_C_I < 25): Score = 0 Knockout_1 = 'True' Knockout_11 = Knockout_1 Knockscore = 0 elif(W_C_I >= 25 and W_C_I < 50): Score = 250 Knockout_2 = 'False' Knockout_22 = Knockout_2 Knockscore = 0 elif(W_C_I >= 50 and W_C_I < 75): Score = 260 Knockout_2 = 'False' Knockout_22 = Knockout_2 Knockscore = 0 elif(W_C_I >= 75 and W_C_I < 100): Score = 270 Knockout_2 = 'False' Knockout_22 = Knockout_2 Knockscore = 0 elif (W_C_I >= 100): Score = 300 Knockout_2 = 'False' Knockout_22 = Knockout_2 Knockscore = 0 # Taxable_Base Taxable_Base = Total_Taxable_Income - Wrost_Case_Interest T_B = Taxable_Base # Calculated_Tax Calculated_Tax = round((T_B*0.4054)-62000) C_T = Calculated_Tax # Tax_free_income Tax_Free_Income = Tax_free_rental_income + Other_tax_free_income T_F_I = Tax_Free_Income # Surplus After Tax Surplus_After_Tax = Total_Taxable_Income - \ Wrost_Case_Interest - Calculated_Tax + Tax_Free_Income S_A_T = Surplus_After_Tax # Household Cost Household_Cost = total3 H_C = Household_Cost # Surplus After Costs Surplus_After_Costs = S_A_T - H_C S_A_C = Surplus_After_Costs # Worst case interest cover: Worst_Case_Interest_Cover = round(-(S_A_C / -W_C_I)*100) W_C_I_C = Worst_Case_Interest_Cover # Qualifying - total debt cover Total_Debt_Cover = round((Total_Debt / total), 2) T_D_C = (Total_Debt_Cover) if(T_D_C >= 4.00): Score_2 = 0 Knockout_3 = 'True' Knockout_33 = Knockout_3 Knockscore2 = 1 elif(T_D_C > 3.50 and T_D_C <= 4.00): Score_2 = 250 Knockout_4 = 'False' Knockout_44 = Knockout_4 Knockscore2 = 0 elif(T_D_C > 2.50 and T_D_C <= 3.50): Score_2 = 260 Knockout_4 = 'False' Knockout_44 = Knockout_4 Knockscore2 = 0 elif(T_D_C > 2.00 and T_D_C <= 2.50): Score_2 = 270 Knockout_4 = 'False' Knockout_44 = Knockout_4 Knockscore2 = 0 elif (T_D_C <= 2.00): Score_2 = 300 Knockout_4 = 'False' Knockout_44 = Knockout_4 Knockscore2 = 0 # Qualifying - Equity levels Total_Equity_Level = round((1-(Total_Debt/total2))*100) T_E_L = Total_Equity_Level if(T_E_L < 15): Score_3 = 0 Knockout_5 = 'True' Knockout_55 = Knockout_5 Knockscore3 = 1 elif(T_E_L >= 15 and T_E_L < 30): Score_3 = 100 Knockout_6 = 'False' Knockout_66 = Knockout_6 Knockscore3 = 0 elif(T_E_L >= 30 and T_E_L < 50): Score_3 = 150 Knockout_6 = 'False' Knockout_66 = Knockout_6 Knockscore3 = 0 elif(T_E_L >= 50 and T_E_L < 100): Score_3 = 230 Knockout_6 = 'False' Knockout_66 = Knockout_6 Knockscore3 = 0 elif (T_E_L >= 100): Score_3 = 300 Knockout_6 = 'False' Knockout_66 = Knockout_6 Knockscore3 = 0 # Total_Overall_Score Total_Overall_Score = Score + Score_2 + Score_3 + Score_of_PB1 + Score_of_SB1 TOS = Total_Overall_Score # Any knock outs - e.g. where they are below minimum regulatory: if(Knockscore and Knockscore2 and Knockscore3 == 0): Anyknock_outs = 0 Anyknock_outs1 = Anyknock_outs else: Anyknock_outs = Knockscore + Knockscore2 + Knockscore3 # If there was a knock out - set score to zero: if(Anyknock_outs > 0): Set_score_to_zero = 0 Set_score_to_zero1 = Set_score_to_zero else: Set_score_to_zero = Total_Overall_Score Set_score_to_zero1 = Set_score_to_zero # Current rate assesment(Factor): if(E_Rate < 1.50): Score_4 = 10 Factor = Score_4 elif(E_Rate >= 1.5 and E_Rate < 1.75): Score_4 = 25 Factor = Score_4 elif(E_Rate >= 1.75 and E_Rate < 2.0): Score_4 = 50 Factor = Score_4 elif(E_Rate >= 2.0 and E_Rate < 3.0): Score_4 = 75 Factor = Score_4 elif (E_Rate >= 3.0): Score_4 = 100 Factor = Score_4 # Speedometer: Speedometer = (Score_4/100) * Total_Overall_Score Speedometer1 = Speedometer # return render_template("index.html", Age_Score11=Age_Score1, Age_Score22=Age_Score2, Day_1=Day11, Month_1=Month11, Year_1=Year11,
Day_2=Day22, Month_2=Month22, Year_2=Year22, age11=age1, age22=age2, Speedometer11=Speedometer1, Set_score_to_zero11=Set_score_to_zero1, Anyknock_outs11=Anyknock_outs1, TOS1=TOS, Score_of_PB11=Score_of_PB1, Score_of_SB11=Score_of_SB1, WT_score_1=WT_score11, ET_score_1=ET_score11, TI_score_1=TI_score11, WT_score_2=WT_score22, ET_score_2=ET_score22, TI_score_2=TI_score22, Score1=Score, Knockout_1=Knockout_11, Knockout_2=Knockout_22, Score2=Score_2, Knockout_3=Knockout_33, Knockout_4=Knockout_44, Score3=Score_3, Knockout_5=Knockout_55, Knockout_6=Knockout_66, Factor_1=Factor, total_income=total, total_debts=Total_Debt, total_security=total2, annual_household_cost=total3, output_wt1=WT1, output_et1=ET1, output_ti1=TI1, output_wt2=WT2, output_et2=ET2, output_ti2=TI2, hlio=HLIO, pr=PR, ER=E_Rate, WCR=WC_Rate, TTI=T_T_I, WCI=W_C_I, TB=T_B, TFI=T_F_I, CT=C_T, SAT=S_A_T, HC=H_C, SAC=S_A_C, WCIC=W_C_I_C, TDC=T_D_C, TEL=T_E_L) # output_dob1=DOB1, output_dob2=DOB2,
# if __name__ == '__main__': # app.run(host="127.0.0.1", port=80, debug=True,) response["headers"] = event["headers"] return ( json.dumps(Age_Score11=Age_Score1, Age_Score22=Age_Score2, Day_1=Day11, Month_1=Month11, Year_1=Year11, Day_2=Day22,
Month_2=Month22, Year_2=Year22, age11=age1, age22=age2, Speedometer11=Speedometer1, Set_score_to_zero11=Set_score_to_zero1, Anyknock_outs11=Anyknock_outs1, TOS1=TOS, Score_of_PB11=Score_of_PB1, Score_of_SB11=Score_of_SB1, WT_score_1=WT_score11, ET_score_1=ET_score11, TI_score_1=TI_score11, WT_score_2=WT_score22, ET_score_2=ET_score22, TI_score_2=TI_score22, Score1=Score, Knockout_1=Knockout_11, Knockout_2=Knockout_22, Score2=Score_2, Knockout_3=Knockout_33, Knockout_4=Knockout_44, Score3=Score_3, Knockout_5=Knockout_55, Knockout_6=Knockout_66, Factor_1=Factor, total_income=total, total_debts=Total_Debt, total_security=total2, annual_household_cost=total3, output_wt1=WT1, output_et1=ET1, output_ti1=TI1, output_wt2=WT2, output_et2=ET2, output_ti2=TI2, hlio=HLIO, pr=PR, ER=E_Rate, WCR=WC_Rate, TTI=T_T_I, WCI=W_C_I, TB=T_B, TFI=T_F_I, CT=C_T, SAT=S_A_T, HC=H_C, SAC=S_A_C, WCIC=W_C_I_C, TDC=T_D_C, TEL=T_E_L), 200, {'Content-Type': "application/json"} )
#我得到的错误是: 测试事件名称 测试
响应 { "errorMessage": "'queryStringParameters'", "errorType": "KeyError", “堆栈跟踪”: [ “文件“/var/task/lambda_function.py”,第 67 行,在 lambda_handler\n Salary_or_wages = event["queryStringParameters"]['salary/wages']\n" ] }
函数日志 开始 RequestId:0c3fcadc-3967-4381-b176-1ec50045b28c 版本:$LATEST [错误] 键错误:'queryStringParameters' 追溯(最近一次通话): 文件“/var/task/lambda_function.py”,第 67 行,在 lambda_handler 中 Salary_or_wages = 事件["queryStringParameters"]['salary/wages']
您的 API 网关设置为代理 Lambda 集成还是 Lambda 集成?每个都有一个不同的事件结构,它会改变键所在的位置。
记录事件(print(event)
可以很好地用于测试 运行)然后点击您的端点并查看事件结构是什么样的。这会告诉你键应该在哪里,或者你是否有错误的键值(事件结构不会经常更新,但它确实会发生,教程视频很快就会过时)
Lambda 的事件(事实上,所有 AWS 中的所有事件)只是 JSON 个对象。使用 python,它直接转换为字典,因此弄清楚正确的键结构可能有点奇怪,因为关于 AWS Sphere 中各种事件的文档分散在整个文档中,很难找到。
我通常在我的控制台上保留一个 lambda,它所做的只是 print(event)
然后将它连接到我当时尝试使用的任何触发器,这样我就可以看到它看起来漂亮而清晰。