用了整个下午+饭后到现在的时间才把这个脚本憋出来,先后买了<可爱的Python>、<Python核心编程>,以及一大堆Python电子书,但都没有看完过,光看书容易要不了会儿就打瞌睡了...,那还是直接用吧,不懂的地方就Google,譬如我在写这个脚本中Google过‘python how to write dictionary into file’ 以及一些抱错信息。
这算是自己的第一个Python脚本,期待着各位的点评,脚本的结构、数据结构的应用等任何意见和建议我都洗耳恭听,相信通过实战更加能帮助我的学习,谢谢先 ~
# -*- coding: cp936 -*-
# 脚本用途:通过已有的issue key,调用jira soap api getAvailableActions by issue key,获取每个issue当前available的action值,放入字典并写入文件
import SOAPpy
import SOAPpy.Types
soap = SOAPpy.WSDL.Proxy('https://...?wsdl')
user = 'xxx'
password = 'xxx'
auth = soap.login(user, password)
# 将所有issue key手动作为list载入,400 < len(issueKeys) <2500,这么大的list会影响运行速度吗?
issueKeys = ['issueKey001', 'issueKey002',...]
issueDict = {}
# 创建函数,调用jira soap api getAvailableActions by issue key,原本是在接下来这段代码的loop中直接调用这个api,但一直出错,只有先定义个函数将值抓出来
def getActions(issueKey):
return soap.getAvailableActions(auth, issueKey)
# 遍历所有issue key,将所有issue下available的action找出来并放到{issueKey:action}字典中去
for issueKey in issueKeys:
for action in getActions(issueKey):
issueDict[issueKey] = action['name']
f = open(r'c:/test.txt','w')
# 发现网络掉包严重的时候无法将所有的action获取到,因此加入了如下这个if...else...条件
if len(issueDict) != len(issueKeys):
f.write('oops...please try it again...')
f.close()
else:
# 遍历字典,写入文件,issueKey availbleAction
for k in issueDict.keys():
f.write(k)
f.write(' ')
for i in issueDict[k]:
f.write('%s' % i)
f.write('\n')
f.close()
这算是自己的第一个Python脚本,期待着各位的点评,脚本的结构、数据结构的应用等任何意见和建议我都洗耳恭听,相信通过实战更加能帮助我的学习,谢谢先 ~
# -*- coding: cp936 -*-
# 脚本用途:通过已有的issue key,调用jira soap api getAvailableActions by issue key,获取每个issue当前available的action值,放入字典并写入文件
import SOAPpy
import SOAPpy.Types
soap = SOAPpy.WSDL.Proxy('https://...?wsdl')
user = 'xxx'
password = 'xxx'
auth = soap.login(user, password)
# 将所有issue key手动作为list载入,400 < len(issueKeys) <2500,这么大的list会影响运行速度吗?
issueKeys = ['issueKey001', 'issueKey002',...]
issueDict = {}
# 创建函数,调用jira soap api getAvailableActions by issue key,原本是在接下来这段代码的loop中直接调用这个api,但一直出错,只有先定义个函数将值抓出来
def getActions(issueKey):
return soap.getAvailableActions(auth, issueKey)
# 遍历所有issue key,将所有issue下available的action找出来并放到{issueKey:action}字典中去
for issueKey in issueKeys:
for action in getActions(issueKey):
issueDict[issueKey] = action['name']
f = open(r'c:/test.txt','w')
# 发现网络掉包严重的时候无法将所有的action获取到,因此加入了如下这个if...else...条件
if len(issueDict) != len(issueKeys):
f.write('oops...please try it again...')
f.close()
else:
# 遍历字典,写入文件,issueKey availbleAction
for k in issueDict.keys():
f.write(k)
f.write(' ')
for i in issueDict[k]:
f.write('%s' % i)
f.write('\n')
f.close()