Я искал другие ответы, ( это ), например, и мне не повезло.Я пишу сценарий для извлечения данных из API.
Я хочу пройтись по результирующему словарю и извлечь подробности для каждого результата, такие как имя, популяция и т. Д. Образец полученного ответа с использованием json.dumps:
{
"count": 61,
"next": "https://swapi.co/api/planets/?page=2",
"previous": null,
"results": [
{
"climate": "temperate",
"created": "2014-12-10T11:35:48.479000Z",
"diameter": "12500",
"edited": "2014-12-20T20:58:18.420000Z",
"films": [
"https://swapi.co/api/films/6/",
"https://swapi.co/api/films/1/"
],
"gravity": "1 standard",
"name": "Alderaan",
"orbital_period": "364",
"population": "2000000000",
"residents": [
"https://swapi.co/api/people/5/",
"https://swapi.co/api/people/68/",
"https://swapi.co/api/people/81/"
],
"rotation_period": "24",
"surface_water": "40",
"terrain": "grasslands, mountains",
"url": "https://swapi.co/api/planets/2/"
},
{
"climate": "temperate, tropical",
"created": "2014-12-10T11:37:19.144000Z",
"diameter": "10200",
"edited": "2014-12-20T20:58:18.421000Z",
"films": [
"https://swapi.co/api/films/1/"
],
"gravity": "1 standard",
"name": "Yavin IV",
"orbital_period": "4818",
"population": "1000",
"residents": [],
"rotation_period": "24",
"surface_water": "8",
"terrain": "jungle, rainforests",
"url": "https://swapi.co/api/planets/3/"
},
{
"climate": "frozen",
"created": "2014-12-10T11:39:13.934000Z",
"diameter": "7200",
"edited": "2014-12-20T20:58:18.423000Z",
"films": [
"https://swapi.co/api/films/2/"
],
"gravity": "1.1 standard",
"name": "Hoth",
"orbital_period": "549",
"population": "unknown",
"residents": [],
"rotation_period": "23",
"surface_water": "100",
"terrain": "tundra, ice caves, mountain ranges",
"url": "https://swapi.co/api/planets/4/"
},
Впервые в Python, так что если есть лучший способ сделать это, я открыт для предложений!
В моем коде для тестирования у меня есть это:
print(jsonResponse["results"][1]["name"])
Я могу вручную изменить 1 на другие числа и получить правильное имя для печати.
Если я использую это, я получаю "индексы списка должны быть целыми числами или ломтиками,не str "сообщение
for i in jsonResponse:
print(jsonResponse["results"][i]["name"])