parse github api .. получение строковых индексов должно быть целой ошибкой - PullRequest
0 голосов
/ 21 апреля 2019

Мне нужно пройтись по коммитам и получить информацию об имени, дате и сообщениях из GitHub API.

https://api.github.com/repos/droptable461/Project-Project-Management/commits

У меня много разных вещей, но я застреваю в строковых индексах, должны быть целые ошибки:

def git():
#name , date , message
#https://api.github.com/repos/droptable461/Project-Project-Management/commits
#commit { author { name and date
#commit { message

    #with urlopen('https://api.github.com/repos/droptable461/Project Project-Management/commits') as response:
        #source = response.read()

    #data = json.loads(source)
    #state = []
    #for state in data['committer']:
        #state.append(state['name'])
        #print(state)

    link = 'https://api.github.com/repos/droptable461/Project-Project-Management/events'
    r = requests.get('https://api.github.com/repos/droptable461/Project-Project-Management/commits')
    #print(r)

    #one = r['commit']
    #print(one)
    for item in r.json():
        for c in item['commit']['committer']:
            print(c['name'],c['date'])

    return 'suc'

Нужно найти человека, который сделал коммит, дата и их сообщение.

1 Ответ

0 голосов
/ 21 апреля 2019

item['commit']['committer'] является объектом словаря, и поэтому строка:
for c in item['commit']['committer']: является транзитными ключами словаря.

Поскольку вы вызываете [] в строке (ключ словаря), вы получаете ошибку.

Вместо этого код должен выглядеть примерно так:

def git():
    link = 'https://api.github.com/repos/droptable461/Project-Project-Management/events'
    r = requests.get('https://api.github.com/repos/droptable461/Project-Project-Management/commits')
    for item in r.json():
        for key in item['commit']['committer']:
            print(item['commit']['committer']['name'])
            print(item['commit']['committer']['date'])
            print(item['commit']['message'])
    return 'suc'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...