3

我正在使用 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 NaN
1 发现 Delta 会泄漏接收到的数据包...
2 每次断开连接时 Delta 都会重置...
3 NaN
4 它应该在 CP 进入 l 时记录...
5 通过升级 IDS 时BioMed 菜单,th...
6 通过 BioMed 菜单
升级 IDS 后,th... 7 通过 BioMed 菜单升级 IDS 后,th...
8 增加 Fusion 堆大小和 SCC1 Initia...
9 重新检查使用 build 142+,在 Matt 交付后 ...
10 使用 WPA2 时,有 EAPOL 密钥交换 go...
11 使用 WPA2 时,有 EAPOL 密钥交换 go...
12 NaN
13 NaN
14 NaN ...

我只希望每个问题都有自己的字符串值,而不是索引号或 NaN 显示如下:


问题1:
问题2:发现Delta会泄漏接收到的数据包...
问题3:每次断开连接时Delta都会重置......

4

1 回答 1

1

您的代码的一个主要缺陷是您在循环之前分配数据。

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
于 2013-07-02T06:43:57.567 回答