У меня есть событие ниже
event = {'body-json': {}, 'params': {'path': {'match': '%20'}, 'querystring': {}, 'header': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate, br', 'Content-Type': 'application/json', 'Host': 'xx.amazonaws.com', 'Postman-Token': '50ae98db-6077-47c4-ac11-bfc53ac78990', 'User-Agent': 'PostmanRuntime/7.26.2', 'X-Amzn-Trace-Id': 'Root=1-5f2cb950-27ff7e6789988bd6b1a74d76', 'X-Forwarded-For': 'xxx.24', 'X-Forwarded-Port': '443', 'X-Forwarded-Proto': 'https'}}, 'stage-variables': {}, 'context': {'account-id': '', 'api-id': 'xx', 'api-key': '', 'authorizer-principal-id': '', 'caller': '', 'cognito-authentication-provider': '', 'cognito-authentication-type': '', 'cognito-identity-id': '', 'cognito-identity-pool-id': '', 'http-method': 'POST', 'stage': 'v1', 'source-ip': 'xx.24', 'user': '', 'user-agent': 'PostmanRuntime/7.26.2', 'user-arn': '', 'request-id': '8d13e523-de12-4527-b58d-b11a7c8d09fb', 'resource-id': 'td4vr4', 'resource-path': '/{match}'}}
Я создал шлюз api в AWS {match} в методе публикации
мой адрес шлюза api - https://3xx.amazonaws.com/v1/Messi, Лев
event['params']['path']['match'] = 'Messi,Leo'
Проблема
, если мой URL-адрес apigateway https://3xx.amazonaws.com/v1/, если я поставил пробел после v1 появляется ошибка ключа
, если я помещаю специальный символ, например ($ space, dot) https://3xx.amazonaws.com/v1/ $ , я не должен получать ошибку ключа.
Прямо сейчас выдает ошибку KeyError
, только если поставить пробел после v1. Вы можете видеть в событии для соответствия его '% 20'
, если KeyError мне нужно распечатать, есть no result
Я пытался использовать try / except, но все еще появляется как ошибка ключа
Код
def lambda_handler(event, context):
print (event)
var = event['params']['path']['match']
#print (var)
try :
if var == '':
print ('tried')
except Exception as e:
print ('excepted')