`TypeError: строковые индексы должны быть целыми числами`
Я пытаюсь перечислить название и номер по запросу в репозитории. Я хотел бы вернуть JSON как dict и распечатать заголовок и номер запроса на получение.
Если я просто печатаю только название или номер, я получаю ожидаемый результат, но если объединить значения для печати, я получаю TypeError: string indices must be integers
,
#!/usr/bin/env python
import github3
from github3 import login, GitHub
import requests
import json
import sys
auth = dict(username="xxxxxxxxx",token="xxxxxxxxx")
gh = login(**auth)
result = gh.repository(owner="xxx", repository="xxxx").pull_request(x)
data = result.as_dict()
print data['title']['number']
1 ответ
Решение
Действительно, то, что сказал Двухразрядный Алхимик, верно. Учитывая этот пример:
>>> auth = dict(username='larsks', token='mytoken')
>>> gh = login(**auth)
>>> result = gh.repository(owner='ansible', repository='ansible').pull_request(12165)
>>> data = result.as_dict()
Мы это видим data['title']
это строка:
>>> data['title']
'Be systematic about parsing and validating hostnames and addresses (proof of concept)'
Если мы хотим номер PR, мы можем попросить:
>>> data['number']
12165