Сохранять переменную постоянной в цикле при повторном использовании переменной в python
Я пытаюсь просмотреть JSON, где у меня есть sid
, который изначально нулевой, когда он передается через хранимую процедуру, он возвращает некоторое значение 8463
и я хочу сохранить это значение как sid
и снова я хочу передать то же значение, которое 8463
через SP снова.
Я пытался сохранить его постоянным, но как только он проходит через один словарь, он автоматически увеличивает значение `sid. Любая помощь будет принята с благодарностью
Views.py
@api_view(['POST'])
def SaveUserResponse(request):
if request.method == 'POST':
for ran in request.data:
print(type(ran),'QId--',ran.get('QId'), ran)
print(type(request.data))
auditorid =ran.get('AuditorId')
print('SaveUserResponse auditorid---', auditorid)
ticketid = ran.get('TicketId')
qid = ran.get('QId')
answer = ran.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()
print('sp_SaveAuditResponse', result_st)
# # if qid != 1 or qid != 42:
for row in result_st:
print('sp_SaveAuditResponse', row)
sid = row[0]
return Response(row[0])
Payload:
[{"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":""}]
Я исправил это, инициализировав sid
перед циклом и просто вернув sid
после цикла. Вот код
@api_view(['POST'])
def SaveUserResponse(request):
if request.method == 'POST':
sid = 0
for ran in request.data:
print(type(ran),'QId--',ran.get('QId'), ran)
print(type(request.data))
auditorid =ran.get('AuditorId')
print('SaveUserResponse auditorid---', auditorid)
ticketid = ran.get('TicketId')
qid = ran.get('QId')
answer = ran.get('Answer')
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()
print('sp_SaveAuditResponse', result_st)
for row in result_st:
print('sp_SaveAuditResponse', row)
sid = row[0]
return sid