`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
Другие вопросы по тегам