#python #python-3.7 #python-3.8
Вопрос:
Я не могу получить доступ к данным из события в функции python
Я пытаюсь получить имя из JSON
def handler(event, context):
resp = event
user_name = resp['body']['user']['name']
но я получаю следующую ошибку
ERROR] TypeError: string indices must be integers
Traceback (most recent call last):
File "/var/task/index.py", line 28, in handler
user_name = resp['body']['user']['name']
Комментарии:
1. может
resp
быть, это уже тело. попробуйте использоватьresp['repository']['name']
и сообщите мне результат.2. Я получаю ту же ошибку
3. внесите больше кода в этот вопрос. не могу отлаживать всего 2 строками кода. пожалуйста, узнайте больше подробностей или приведите больше кода.
4. Я просто пытаюсь выполнить эти 2 строки кода, нет ничего, кроме этого
Ответ №1:
Похоже, resp
это string
в своем роде. загрузите свой ответ, JSON
прежде чем обращаться к нему.
import json
resp = json.loads(resp)
Комментарии:
1. Я получаю ошибку типа для json.loads(соответственно) ` Ошибка типа: объект JSON должен быть str, байт или bytearray, а не dict ` `
2. использовать
json.load
3. В нем говорится AttributeError: объект «дикт» не имеет атрибута «чтение». когда я использую resp = json.load(событие)
4. Если я использую json.dumps() для вышеуказанной ошибки, я получаю ту же ошибку, что и в верхней части моего вопроса TypeError: строковые индексы должны быть целыми числами
5. @AbilashJayanandan узнайте тип ответа, используя тип(отв.)
Ответ №2:
Приведенное ниже решение сработало для меня. Сначала следует извлечь тело события
import json
def handler(event, context):
resp = json.loads(event["body"])
user_name = event['user']['name']