从特定的 Jira 问题中获取字段

Get fields from a specific Jira issue

我正在尝试从我的代码的特定问题中获取所有字段和值:

authenticated_jira = JIRA(options={'server': self.jira_server}, basic_auth=(self.jira_username, self.jira_password))
issue = authenticated_jira.issue(self.id) 
print issue.fields()

它没有返回字段列表 returns:

<jira.resources.PropertyHolder object at 0x108431390>

发现使用:

print self.issue_object.raw

其中 returns 可以迭代和操作的原始 json 字典。

authenticated_jira = JIRA(options={'server': self.jira_server}, basic_auth=(self.jira_username, self.jira_password))
issue = authenticated_jira.issue(self.id) 

for field_name in issue.raw['fields']:
    print "Field:", field_name, "Value:", issue.raw['fields'][field_name]

取决于字段类型,有时您将字典作为一个值,然后您必须找到您想要的实际值。

你可以使用issue.raw['fields']['desired_field'],但这种方式有点间接访问字段值,因为你在return中得到的是不一致的。你得到字符串列表,然后只是字符串本身,然后是没有键供你访问它们的直接值,所以你必须迭代,计算位置,然后解析以获得值不可靠。

最好的方法是使用 issue.fields.customfield_# 这样您就不必通过 .raw fields 进行任何解析 几乎所有东西都有一个 customfield 与之相关联。您可以仅从 REST API 中提取问题以查找自定义字段 #'s,或者您使用 .raw 获得的某些字段将具有一个看起来像 "customfield_11111" 的自定义字段 ID,这就是您将要做的使用。