[英]Flasgger AttributeError: 'NoneType' object has no attribute 'get'?
[英]'NoneType' object has no attribute 'get': AttributeError
我收到錯誤:“NoneType”object 沒有屬性“get”:AttributeError。 請幫我弄清楚。
文件“/var/task/lambda_function.py”,第 15 行,在 lambda_handler create_stripe_customer(cardData,phone,email)
import json
import boto3
import stripe
client = boto3.client('secretsmanager')
keys = json.loads(client.get_secret_value(
SecretId = 'arn:aws:secretsmanager:ap-so',
)['SecretString'])
public_key = keys['stripe-public']
secret_key = keys['stripe-secret']
stripe.api_key = secret_key
def lambda_handler(event, context):
cardData = event.get('cardData')
phone = event.get('phone')
email = event.get('email')
create_stripe_customer(cardData,phone,email)
return event
def create_stripe_customer(payment_info, phone, email):
customer_id = stripe.Customer.create( phone = phone,email=email)['id']
payment_method_id = create_payment_method(payment_info)
stripe.PaymentMethod.attach(payment_method_id, customer = customer_id)
return {"customer_id": customer_id,
"plan": create_stripe_plan(customer_id)
}
def create_payment_method(payment_info):
return stripe.PaymentMethod.create(type = "card",
card = {"number": payment_info.get('cardNumber'),
"exp_month": payment_info.get('expirationMonth'),
"exp_year": payment_info.get('expirationYear'),
"cvc": payment_info.get('ccv'),
}).get('id')
def create_stripe_plan(customer_id):
return stripe.Subscription.create(
customer = customer_id,items = [{"plan": "plan_idxxxxxxx"}]).get("id")
為什么它不起作用
event.get()
可能是為檢索事件中的數據而進行的錯誤調用類型。 因此,數據類型將被收集並保存為NoneType
。
參考這里,您可以通過調用 event['item'] 而不是 event.get('item') 來檢索事件項。
這是一個例子:
def my_handler(event, context):
message = 'Hello {} {}!'.format(event['first_name'],
event['last_name'])
return {
'message' : message
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.