"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) 然后将它连接到我当时尝试使用的任何触发器,这样我就可以看到它看起来漂亮而清晰。