我正在使用 JIRA Python 模块,它是 REST API 的扩展,可以自动执行在 JIRA 中删除和创建问题的过程。我正在尝试在我的 python 脚本中使用“for”循环在 JIRA 中创建问题,该脚本使用我从另一个数据库收集的导入数据。我需要在创建问题时格式化字段,以便我拥有的数据可以与 JIRA 中的相应字段正确对齐。下面是我的 Python 代码,用于创建问题并将数据存储到 JIRA 中,这些数据存储在自定义变量中:
df 包含我想通过创建新问题输入到 JIRA 中的 13 列数据。每列代表 JIRA 中一个问题的不同字段。 JIRA 中创建的每个新问题都应该从每一列中获取信息:
from jira.client import JIRA
import pandas as pd
# Now we input the issues from the export.csv CSV file into the fields
# of new issues that are being created in JIRA to replace the old ones that were
# deleted
df = pd.read_csv('C:\\Python27\\scripts\\export.csv')
# Set the column names from the export.csv file equal to variables using the
# pandas python module
# Now do the actual loop to create new issues
for row in df:
cqid = df['ClearQuest ID']
summ = str(df.Summary)
datecreated = df['Date Created']
dateresolved = df['Date Resolved']
wistate = df['WI State']
res = df.Resolution
affected = df['Affected version/s']
fixed = df['Fix version/s']
issue_type = df['Issue Type']
priority = df.Priority
comments = str(df.Comments)
jira.create_issue(project={'key': 'DEL'}, wistate={'customfield_1001': 'WI State'}, res={'customfield_1001': 'Resolution'}, cqid={'customfield_1001': 'ClearQuest ID'}, datecreated={'customfield_1001': 'Date Created'}, dateresolved={'customfield_1001': 'Date Resolved'}, priority={'customfield_1001': 'Priority'}, fixed={'customfield_1001': 'Fixed Version'}, affected={'customfield_10004': 'affected'}, summary=summ, description=comments, issuetype={'name': 'Defect'})
它给出了错误:
JIRAError: HTTP 400: "{u'cqid': u"Field 'cqid' cannot be set. It is not on the appropriate screen, or unknown.", u'wistate': u"Field 'wistate' cannot be set. It is not on the appropriate screen, or unknown.", u'dateresolved': u"Field 'dateresolved' cannot be set. It is not on the appropriate screen, or unknown.", u'res': u"Field 'res' cannot be set. It is not on the appropriate screen, or unknown.", u'datecreated': u"Field 'datecreated' cannot be set. It is not on the appropriate screen, or unknown.", u'affected': u"Field 'affected' cannot be set. It is not on the appropriate screen, or unknown.", u'fixed': u"Field 'fixed' cannot be set. It is not on the appropriate screen, or unknown."}"
以下是在评论字段中创建的每个问题的 JIRA 中显示的一些示例数据:
问题 1:
0 南
1 发现Delta会泄露接收到的数据包...
2 每次断开连接时,Delta 都会重置 ...
3 南
4 它应该在 CP 采取 l... 时被记录下来
5 通过 BioMed 菜单升级 IDS 后,...
6 通过 BioMed 菜单升级 IDS 后,...
7 通过 BioMed 菜单升级 IDS 后,...
8 增加了 Fusion 堆大小和 SCC1 Initia...
9 使用 build 142+ 重新检查,在 Matt 交付后......
10 使用WPA2时,有EAPOL key echange go...
11 使用WPA2时,有EAPOL key echange go...
12 南
13 南
14 南 ...
我只希望每个问题都有自己的字符串值,而不是像这样显示索引号或 NaN:
第 1 期:
问题2:发现Delta会泄露接收到的数据包...
问题 3:每次断开连接时,Delta 都会重置 ... ...
请您参考如下方法:
您的代码的一个主要缺陷是您在循环之前分配数据。
df = pd.read_csv('C:\\Python27\\scripts\\export.csv')
for row in df:
cqid = row['ClearQuest ID']
summary = row.Summary
jira.create_issue(...)
您很可能需要做这样的事情。
for row in df.values:
cqid , summary , value3, value4, value5 = row
