TypeError: индексы списка должны быть целыми числами или срезами, а не dict

Я пытаюсь вернуть все данные JSON из полезной нагрузки, но он выдает ошибку TypeError: list indices must be integers or slices, not dict.

Когда я print(request.data), он просто возвращает все данные JSON, но когда я делаю цикл for, он выдает ошибку

Вот, что я пробовал

views.py:

@api_view(['POST'])
def SaveUserResponse(request):
    
    if request.method == 'POST':
     for i in request.data:
        print(request.data)
        auditorid =request.data[i]['AuditorId']
        print('SaveUserResponse auditorid---', auditorid)

        ticketid =request.data[i]['TicketId']
        qid = request.data[i]['QId']
        answer = request.data[i]['Answer']
        sid = request.data[i]['SID']
        print('sid--', sid)


        cursor = connection.cursor()
        cursor.execute('EXEC [dbo].[sp_SaveAuditResponses] @auditorid=%s,@ticketid=%s,@qid=%s,@answer=%s,@sid=%s',
         (auditorid,ticketid,qid,answer, sid,))
        result_st = cursor.fetchall()
        for row in result_st:
            print('sp_SaveAuditResponse', row[0])
        
        return Response(row[0])

    return sid

JSON полезная нагрузка:

Предполагая, что полученные данные имеют форму словаря, попробуйте сделать следующее:

for i in request.data.keys():

Таким образом вы пройдете по всем ключам словаря, и последующая индексация тоже будет работать.

Вернуться на верх