Ошибка при извлечении данных из JSON webhook

#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']