我在执行第一行后尝试循环 JSON,它开始读取keys
dict 内部,所以我收到一个错误,因为 ''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,
}
我认为您需要创建序列化程序才能正确接收此数据。
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] 删除。
我来说两句