У меня есть данные json, возвращенные из вызова Jira API. Я хочу получить значение для isselinks.type.name, только если эта ссылка на выпуск является внешней ссылкой (имеет атрибут outwardIssue). И я бы также дал ссылку, чтобы получить значение isselinks.outwardIssue.key.
Вот что я пробовал до сих пор:
data = response.json()
json_tree = objectpath.Tree(data['fields'])
linkTypes = tuple(json_tree.execute('$..issuelinks[len(@.outwardIssue.key) > 0].(type.name)'))
linkedIssues = tuple(json_tree.execute('$..issuelinks.outwardIssue.key'))
Для linkTypes это захватывает все атрибуты длякаждый элемент isselinks независимо от атрибута outwardIssue.
По сути, мне просто нужно знать, является ли ссылка внутренней или внешней, тип ссылки и ключ выпуска.
В приведенном ниже json вы можетевидим, что есть 1 элемент inwardIssue и 1 элемент outwardIssue.
Структура json выглядит следующим образом.
"fields": {
"issuelinks": [
{
"id": "51311",
"self": "url",
"type": {
"id": "10030",
"name": "Cloners",
"inward": "is cloned by",
"outward": "clones",
"self": "url"
},
"inwardIssue": {
"id": "136484",
"key": "ABCD-9579",
"self": "url",
"fields": {
"summary": "",
"status": {
"self": "url",
"description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.",
"iconUrl": "url",
"name": "Closed",
"id": "6"
},
"priority": {
"self": "url",
"iconUrl": "url",
"name": "Critical",
"id": "6"
},
"issuetype": {
"self": "url",
"id": "24",
"description": "",
"iconUrl": "url",
"name": "Script",
"subtask": true
}
}
}
},
{
"id": "50884",
"self": "url",
"type": {
"id": "10020",
"name": "Related",
"inward": "Is related with",
"outward": "Relates to",
"self": "url"
},
"outwardIssue": {
"id": "134430",
"key": "ABCD-185",
"self": "url",
"fields": {
"summary": "",
"status": {
"self": "url",
"description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.",
"iconUrl": "url",
"name": "Closed",
"id": "6"
},
"priority": {
"self": "url",
"iconUrl": "url",
"name": "Blocker",
"id": "1"
},
"issuetype": {
"self": "url",
"id": "1",
"description": "A problem which impairs or prevents the functions of the product.",
"iconUrl": "url",
"name": "Defect",
"subtask": false
}
}
}
}