Как получить конкретные данные из словаря в Python - PullRequest
0 голосов
/ 20 июня 2019

Итак, у меня есть файл JSON. Где я загружаю его как файл json в python, и я пытаюсь получить элементы из словаря. Я могу получить доступ к «sha» «автору» и получить все его компоненты, но как мне получить доступ только к «message», «name» и «date»?

Я пытаюсь использовать этот код для доступа к «сообщениям», но я получаю ключевую ошибку:

    data = json.load(json_file)
    print(str(type(data))) # class <dict>
    for p in data['commits']:
        print(p['message'])

Мой файл выглядит следующим образом: (Он содержит более одного сообщения о коммите):

{

   "commits":[  
      {  
         "sha":"exampleSHA",
         "node_id":"exampleID",
         "commit":{  
            "author":{  
               "name":"example",
               "email":"example@example.se",
               "date":"2015-09-07T22:06:51Z"
            },
            "committer":{  
               "name":"example",
               "email":"example@example.se",
               "date":"2015-09-07T22:06:51Z"
            },
            "message":"Added LaTex template and instructions",
            "tree":{  
               "sha":"examplesha",
               "url":"http://example.url"
            },
         "parents":[]
      }}
   ]
}

Есть много «сообщений», которые я хочу получить все из диктата.

Результат будет следующим:

AuthorName   Message                                Date
example      Added LaTex template and instructions  2013-07-08T20:16:51Z
example2     Message2                               2015-09-07T22:06:51Z
....         ....                                   .....

1 Ответ

0 голосов
/ 20 июня 2019

Попробуйте это:

data = json.load(json_file)
print(str(type(data))) # class <dict>
for p in data['commits']:
    print(p['commit']['message'])
Поле

message вложено в поле commit.

...