【问题标题】:Parsing JSON file python解析JSON文件python
【发布时间】:2018-04-19 16:04:27
【问题描述】:

整个文件在这里:https://1drv.ms/u/s!AizscpxS0QM4hJpFPnbeAexYPwYu9Q

我想从这部分:

"subtasks": [
                    {
                        "fields": {
                            "issuetype": {
                                "avatarId": 10316,
                                "description": "The sub-task of the issue",
                                "iconUrl": "https://jira.corp.company.com/secure/viewavatar?size=xsmall&avatarId=10316&avatarType=issuetype",
                                "id": "10101",
                                "name": "Sub-task",
                                "self": "https://jira.corp.company.com/rest/api/2/issuetype/10101",
                                "subtask": true
                            },
                            "priority": {
                                "iconUrl": "https://jira.corp.company.com/images/icons/priorities/medium.svg",
                                "id": "3",
                                "name": "Medium",
                                "self": "https://jira.corp.company.com/rest/api/2/priority/3"
                            },
                            "status": {
                                "description": "",
                                "iconUrl": "https://jira.corp.company.com/",
                                "id": "10000",
                                "name": "Backlog",
                                "self": "https://jira.corp.company.com/rest/api/2/status/10000",
                                "statusCategory": {
                                    "colorName": "blue-gray",
                                    "id": 2,
                                    "key": "new",
                                    "name": "To Do",
                                    "self": "https://jira.corp.company.com/rest/api/2/statuscategory/2"
                                }
                            },
                            "summary": "Remove user account in Local AD"
                            },

提取"Remove user account in Local AD"(摘要字段)

到目前为止,我有这个代码:

data = json.load(open(1.json))


for issue in data['issues']:
   print issue['fields']['subtasks']

以及上面的获取部分,如何仅获取汇总值?

如果我添加:

for issue in data['issues']:
   print issue['fields']['subtasks']['summary']

我明白了:

 print issue['fields']['subtasks']['summary']
TypeError: list indices must be integers, not str

与:

    for i in range (0, len (data['issues'])):
       print data['issues']['fields']['subtasks'][i]['fields']['summary']
TypeError: list indices must be integers, not str

【问题讨论】:

  • 子任务是一个列表,遍历它并为列表中的每个项目打印item['summary']。虽然从这个例子来看,它看起来是item['fields']['summary']
  • item['fields']['summary'] 提供主要问题的摘要,而不是子任务摘要(删除本地 AD 中的用户帐户)

标签: python json


【解决方案1】:

啊,子任务是关键,但是item是一个列表!

所以你要找的是issue['fields']['subtasks'][0]['summary']

【讨论】:

  • print issue['fields']['subtasks'][0]['summary'] KeyError: 'summary'
  • 我仔细看了看:试试print issue['fields']['subtasks'][0]['fields']['summary'] 它应该可以工作
  • 已经试过了:print issue['fields']['subtasks'][0]['fields']['summary'] IndexError: list index out of range
  • 我认为使用 .get() issue.get('fields').get(...) 方法更好
  • print issue.get("fields").get("subtasks").get("summary") AttributeError: 'list' object has no attribute 'get'
【解决方案2】:

感谢@nawarkhede

for issue in data['issues']:
  for subtask in issue['fields']['subtasks']:
    if subtask['fields']['summary'] == 'The specified directory could not be found in the specified region.-traider':
      print subtask['fields']['summary']

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多