Ошибка атрибута: объект 'list' не имеет атрибута 'get'
Я пытаюсь получить данные методом POST, это JSON внутри списка. Всякий раз, когда я пытаюсь прочитать JSON, я получаю ошибку ticketid = request.data.get('TicketId') AttributeError: 'list' object has no attribute 'get'
Вот, что я пробовал
views.py
@api_view(['POST'])
def SaveUserResponse(request):
if request.method == 'POST':
auditorid =request.data.get('AuditorId')
print('SaveUserResponse auditorid---', auditorid)
ticketid = request.data.get('TicketId')
qid = request.data.get('QId')
answer = request.data.get('Answer')
sid = 0
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[sp_SaveAuditResponse] @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
Данные нагрузки:
[
0: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 1, Answer: "2", SID: "0",…}
1: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 2, Answer: "2", SID: "0",…}
2: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 3, Answer: "2", SID: "0",…}
3: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 4, Answer: "2", SID: "0",…}
4: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 5, Answer: "5", SID: "0",…}
5: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 6, Answer: "5", SID: "0",…}
6: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 7, Answer: "3", SID: "0",…}
7: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111", QId: 8, Answer: "3", SID: "0",…}
]
Как отметил Виллем Ван Онсем, ваш request.data - это список, поэтому вы не можете использовать .get. Чтобы использовать .get, вам нужно обратиться к определенному словарю из этого списка.
Я не совсем уверен, какой TicketId вам нужен, но если это не важно, потому что они все одинаковые, вы можете сделать так:
request.data[0].get('TicketId')
Если вам нужны все отмеченные ID в виде списка, вы можете использовать понимание списка
[d['TicketId'] for d in request.data]