循环中断并给出错误,因为“str”对象没有属性“get”

开尔文003

我在执行第一行后尝试循环 JSON,它开始读取keysdict 内部,所以我收到一个错误,因为 ''str' 对象没有属性 'get''

我想要的只是获得下一个循环,但它在字典内循环。

当我request.data第一次打印时,它会打印 dict 这是{'AuditorId': 130, 'Agents': '', 'Supervisor': '', 'TicketId': '5354543', 'QId': 1, 'Answer': '2', 'SID': 7734, 'Comments': ''}

执行之后,它假设进入下一个循环,但它直接进入每个循环 n 打印keys当我request.data在控制台中打印时它得到它,ran--- AuditorId ran--- AuditorId ran--- AuditorId ran--- AuditorId ran--- AuditorId ran--- AuditorId这导致了我的错误

有效载荷没有问题。但是从昨天开始我就在尝试的某个地方出了问题,任何帮助将不胜感激

有效载荷:

   [{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":42,"Answer":"2","SID":"0","Comments":""}, 
    
{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":43,"Answer":"2","SID":"0","Comments":""},  

{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":44,"Answer":"2","SID":"0","Comments":""}, 

{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":45,"Answer":"2","SID":"0","Comments":""}, 

{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":46,"Answer":"3","SID":"0","Comments":""}, 
{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":47,"Answer":"5","SID":"0","Comments":""}, 

{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":48,"Answer":"5","SID":"0","Comments":""}, 

{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":49,"Answer":"2","SID":"0","Comments":""}, 

{"AuditorId":130,"Agents":"","Supervisor":"","TicketId":"325423432","QId":50,"Answer":"5","SID":"0","Comments":""}]

views.py:

 cursor = connection.cursor()
 for ran in request.data:
            print('request.data--', ran)
            auditorid =ran.get('AuditorId')
            print('SaveUserResponse auditorid---', auditorid)
            ticketid = ran.get('TicketId')
            qid = ran.get('QId')
            answer = ran.get('Answer')
            # sid =  ran.get('SID')
            sid = '0'
            print('sid--', sid)
         
            qid = i['QId']
            print('qid--', qid)
            answer = i['Answer']
            print('answer--', answer)
       
            
               cursor.execute('EXEC [dbo].[sp_SaveAuditResponse] @auditorid=%s,@ticketid=%s,@qid=%s,@answer=%s,@sid=%s',
                                        (auditorid,ticketid,qid,answer, sid))
               print(qid)
               result_st = cursor.fetchall()
               print('sp_SaveAuditResponse', result_st)
               for row in result_st:
                   print('sp_SaveAuditResponse', row)
               return Response(row[0])

创建 API Payload 的前端:

 this.service.SaveUserResponse(this.InputRequestList ).subscribe((response: Number) => {

          newsid = response;
          this.set = newsid;
        this.InputRequestList = [];

          var otcome: string = '';
       
          let supervisor = localStorage.getItem('PlusSupervisor');
          
          let Agent = localStorage.getItem('PlusAgent');
          
          let taskComments = localStorage.getItem('PlusText4')


          if (newsid != 0) {

            const inputRequest: UserResponse = {
              AuditorId: Number(localStorage.getItem("PlususerId")),
              Agents: (this.selectedAgent == undefined) ? '' : Agent,
              Supervisor: (this.selectedSupervisor == undefined) ? '' : supervisor,
              
             
              TicketId: this.ticket,
              QId: 0,
              Answer: this.selectedValue[i],
              SID: this.set,
              Comments: taskComments,

            }

这里是列表中的有效负载加载--1 这是浏览器有效负载--2,它在dict中一一出现

卢大卫

我认为您需要创建序列化程序才能正确接收此数据。

class AuditorSerializer(serializers.Serializer):
    AuditorId = serializers.IntegerField()
    Agents = serializers.CharField(allow_blank = True)
    Supervisor = serializers.CharField(allow_blank = True)
    TicketId = serializers.CharField(allow_blank = True)
    QId = serializers.IntegerField()
    Answer = serializers.CharField(allow_blank = True)
    SID = serializers.CharField(allow_blank = True)
    Comments = serializers.CharField(allow_blank = True)

而在意见

serializer = AuditorSerializer(data = request.data, many = True)
if serializer.is_valid():
    input_data = serializer.validated_data
    if isinstance(input_data, list):
        for ran in input_data:
           process_data(ran)
    else:
        process_data(input_data)
else:
    print(serializer.errors)
    return Response(status = status.HTTP_400_BAD_REQUEST)

您可以声明process_data函数并传递ran数据,在那里输入原始代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R项目:lm给出错误后循环中断

Python 3:继承 Sheet 对象,给出错误对象没有属性“dict_reader”

获取 AttributeError 错误“str”对象没有属性“get”

“str”对象没有属性“get”django错误

带有MSSQL的Django给出错误:“ DatabaseWrapper”对象没有属性“ Database”

readline()方法给出错误:AttributeError:'tuple'对象没有属性'readline'

使用DJango DetailView的发布请求给出错误“ MyView”对象没有属性“ object”

Python PIP给出错误 - “AttributeError:'module'对象没有属性'ip_address'”

开始运行时刮擦给出错误:AttributeError:“模块”对象没有属性“任何”

“str”对象没有属性“mime”错误?

覆盖 Django UpdateView 中的 get() 方法给出“str”没有属性获取错误

python pickle给出“ AttributeError:'str'对象没有属性'write'”

属性错误:“str”对象没有属性“str”

Django'str'对象没有属性'get'

“str”对象没有属性“get”-Python

'str'对象没有属性'get'(Django)

'str'对象没有属性'get'

str'对象没有属性'get'python

Django:'str' 对象没有属性 'get'

'Tag' 对象在 for 循环中没有属性 'count'

php SELECT查询在面向mysqli对象的fetch_assoc的while循环中给出错误

精确匹配导致错误:“str”对象没有属性“str”

model.fit()Keras分类多输入-单输出给出错误:AttributeError:'NoneType'对象没有属性'fit'

使用GridSearchCV会在scikit-learn中使用CalibratedClassifierCV给出错误。GridSearchCV对象没有属性'best_params_

excel2img在第二次使用时给出错误“对象没有属性'parent'”

/“str”对象的属性错误没有属性“makefile”

给出“LocalOutlierFactor”对象的 ScikitLearn 模型没有属性“预测”错误

使用循环抛出错误访问列表中的字典对象:列表'对象没有属性'keys或unicode'对象没有属性'keys

AttributeError:“ str”对象在for循环内没有属性“ tk”