Разбор JSON данных в Python - PullRequest
0 голосов
/ 09 января 2020

Это файл json, который я хочу проанализировать

{
    "results": [
        {
            "gender": "male",
            "name": {
                "title": "mr",
                "first": "brad",
                "last": "gibson"
            },
            "location": {
                "street": "9278 new road",
                "city": "kilcoole",
                "state": "waterford",
                "postcode": "93027",
                "coordinates": {
                    "latitude": "20.9267",
                    "longitude": "-7.9310"
                }
            },
            "picture": {
                "large": "https://randomuser.me/api/portraits/men/75.jpg",
                "medium": "https://randomuser.me/api/portraits/med/men/75.jpg",
                "thumbnail": "https://randomuser.me/api/portraits/thumb/men/75.jpg"
            }
        }
    ]
}

Я могу легко получить доступ к первому элементу, т. Е. (Пол), используя

 response = requests.get('https://randomuser.me/api')
 data = response.json()

 ans = data['results'][0]['gender']
 print(ans)

, но я не понимаю, как для доступа к элементам "name", т. е. title, first, last

Я пытался

ans = data['results'][1]['name'][0]['title']

Ошибка: индекс вышел за пределы

Ответы [ 2 ]

2 голосов
/ 09 января 2020

Похоже, есть только один результат, поэтому используйте тот же индекс, что и для пола. Кроме того, имя dict не list

ans = data['results'][0]['name']['title']
1 голос
/ 09 января 2020

имя должно быть в кавычках.

Изменить с этого формата.

ans = data['results'][1][name][0]

На этот

ans = data['results'][0]['name']['first']
...