如何在 python 中存储下一个循环的迭代值
How to store the iteration value for next cycle in python
我打算在 servicenow 中自动分配事件。这工作正常。但是,每当下一次迭代是 运行 时,它都会再次说明我提供的第一个 employeeid。但我想将员工详细信息存储在上次迭代完成的位置。这是我的工作代码
# cat working_inc.py
#!/usr/bin/python
import requests, json, csv
import sys, ast
login=(userid,"password")
#open_incidents_url="URL to connect"
open_incidents_url="URL to connect"
response=requests.get(open_incidents_url,auth=login)
response=response.json()['result']
print(response)
employee_number=["empid1","empid2", "empid3","empid4"]
j=0
if len(response) < 1 :
print("No New Tickets in OPENSHIFT / OSFI - SPT Servicenow group")
else:
for i in response:
print (i["number"])
body = {"assigned_to":employee_number[j],"number": i["number"]}
o=requests.post("https://optum.service-now.com/api/now/import/u_incident",auth=login,data=json.dumps(body))
print(o.status_code)
if j == 3:
j=0
else:
j=j+1
在我的代码中,第一次 运行 假设它将 3 inc 分配给 3 empid 但是下次我再次 运行 时,它将从第一个员工开始,但我想从第 4 个开始empid
如果你想在迭代之间存储数据,那么你必须将它保存在某个地方。您的程序每次都从 0 开始。
# cat working_inc.py
#!/usr/bin/python
import requests, json, csv
import sys, ast
login=(userid,"password")
#open_incidents_url="URL to connect"
open_incidents_url="URL to connect"
response=requests.get(open_incidents_url,auth=login)
response=response.json()['result']
print(response)
employee_id_fn = 'last_id.txt'
if not os.path.exists(employee_id_fn):
j = 0
else:
with open(employee_id_fn, "r") as stream:
j = int(stream.read())
employee_number=["empid1","empid2", "empid3","empid4"]
if len(response) < 1 :
print("No New Tickets in OPENSHIFT / OSFI - SPT Servicenow group")
else:
for i in response:
print (i["number"])
body = {"assigned_to":employee_number[j],"number": i["number"]}
o=requests.post("https://optum.service-now.com/api/now/import/u_incident",auth=login,data=json.dumps(body))
print(o.status_code)
j = (j + 1) % 4
with open(employee_id_fn, "w") as stream:
stream.write(str(j))
我打算在 servicenow 中自动分配事件。这工作正常。但是,每当下一次迭代是 运行 时,它都会再次说明我提供的第一个 employeeid。但我想将员工详细信息存储在上次迭代完成的位置。这是我的工作代码
# cat working_inc.py
#!/usr/bin/python
import requests, json, csv
import sys, ast
login=(userid,"password")
#open_incidents_url="URL to connect"
open_incidents_url="URL to connect"
response=requests.get(open_incidents_url,auth=login)
response=response.json()['result']
print(response)
employee_number=["empid1","empid2", "empid3","empid4"]
j=0
if len(response) < 1 :
print("No New Tickets in OPENSHIFT / OSFI - SPT Servicenow group")
else:
for i in response:
print (i["number"])
body = {"assigned_to":employee_number[j],"number": i["number"]}
o=requests.post("https://optum.service-now.com/api/now/import/u_incident",auth=login,data=json.dumps(body))
print(o.status_code)
if j == 3:
j=0
else:
j=j+1
在我的代码中,第一次 运行 假设它将 3 inc 分配给 3 empid 但是下次我再次 运行 时,它将从第一个员工开始,但我想从第 4 个开始empid
如果你想在迭代之间存储数据,那么你必须将它保存在某个地方。您的程序每次都从 0 开始。
# cat working_inc.py
#!/usr/bin/python
import requests, json, csv
import sys, ast
login=(userid,"password")
#open_incidents_url="URL to connect"
open_incidents_url="URL to connect"
response=requests.get(open_incidents_url,auth=login)
response=response.json()['result']
print(response)
employee_id_fn = 'last_id.txt'
if not os.path.exists(employee_id_fn):
j = 0
else:
with open(employee_id_fn, "r") as stream:
j = int(stream.read())
employee_number=["empid1","empid2", "empid3","empid4"]
if len(response) < 1 :
print("No New Tickets in OPENSHIFT / OSFI - SPT Servicenow group")
else:
for i in response:
print (i["number"])
body = {"assigned_to":employee_number[j],"number": i["number"]}
o=requests.post("https://optum.service-now.com/api/now/import/u_incident",auth=login,data=json.dumps(body))
print(o.status_code)
j = (j + 1) % 4
with open(employee_id_fn, "w") as stream:
stream.write(str(j))