繁体   English   中英

类型错误:列表索引必须是整数或切片,而不是字典

[英]TypeError: list indices must be integers or slices, not dict

我试图从有效负载中返回所有 JSON 数据,但它给出了一个错误TypeError: list indices must be integers or slices, not dict

当我print(request.data)时,它只是返回所有 JSON 数据,但是当我执行 for 循环时,它给出了错误

在这里,我尝试了什么

意见.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 载荷:

[
0: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 1, Answer: "2", SID: 3982,…}
1: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 2, Answer: "2", SID: 3982,…}
2: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 3, Answer: "2", SID: 3982,…}
3: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 4, Answer: "2", SID: 3982,…}
4: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 5, Answer: "5", SID: 3982,…}
5: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 6, Answer: "5", SID: 3982,…}
6: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 7, Answer: "3", SID: 3982,…}
7: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 8, Answer: "3", SID: 3982,…}
8: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 9, Answer: "5", SID: 3982,…}
9: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 10, Answer: "5", SID: 3982,…}
10: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 11, Answer: "2", SID: 3982,…}
11: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 12, Answer: "2", SID: 3982,…}
12: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 13, Answer: "3", SID: 3982,…}
13: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 14, Answer: "2", SID: 3982,…}
14: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 15, Answer: "2", SID: 3982,…}
15: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 16, Answer: "2", SID: 3982,…}
16: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 17, Answer: "2", SID: 3982,…}
17: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 18, Answer: "3", SID: 3982,…}
18: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 19, Answer: "5", SID: 3982,…}
19: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 20, Answer: "2", SID: 3982,…}
20: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 21, Answer: "3", SID: 3982,…}
21: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 22, Answer: "2", SID: 3982,…}
22: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 23, Answer: "3", SID: 3982,…}
23: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 24, Answer: "4", SID: 3982,…}
24: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 25, Answer: "4", SID: 3982,…}
25: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 26, Answer: "2", SID: 3982,…}
26: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 27, Answer: "2", SID: 3982,…}
27: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 28, Answer: "2", SID: 3982,…}
28: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 29, Answer: "2", SID: 3982,…}
29: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 30, Answer: "2", SID: 3982,…}
30: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 31, Answer: "2", SID: 3982,…}
31: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 32, Answer: "3", SID: 3982,…}
32: {AuditorId: 122, Agents: "", Supervisor: "", TicketId: "12111111", QId: 33, Answer: "2", SID: 3982,…}
]

要遍历列表,请尝试:

for i in my_list:

此外,您设置 JSON/dict 的方式不是有效语法。 您不需要按键枚举列表元素,因为列表会自动编制索引。 键必须始终是字符串。 它应该更像是:
 my_JSON = [{'AuditorId':122, 'Agents': '', ...}, {'AuditorId':122, 'Agents': '', ...}]

比您将能够通过以下方式访问内部词典:

 my_list[i]['AuditorId']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM