11

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

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()

而不是返回它返回的字段列表:

<jira.resources.PropertyHolder object at 0x108431390>
4

3 回答 3

35
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]

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

于 2015-06-03T09:58:09.823 回答
13

发现使用:

print self.issue_object.raw

它返回可以迭代和操作的原始 json 字典。

于 2015-06-03T09:44:10.910 回答
4

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

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

于 2017-06-15T23:53:28.813 回答