Python Forum
Printing a specific line from a JSON
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Printing a specific line from a JSON
#1
Hi all! I'm new to Python and programming, so please bear with me :-)

I'm doing a project at home in my spare time where I want to get the next departure to the nearest bus station. I have got a API key and have the right enpoint set up, this is how my code looks like:

import json
import requests

response = requests.get('https://api.resrobot.se/v2/departureBoard?REDACTED')

# puts the json into a dictionary object
input_json = json.loads(response.text)

# puts the key "Departure" from the response into a separate list-object... why does it convert from dict to list?!??
input_json_keyfilter = input_json.get("Departure")

print (input_json_keyfilter)
The raw data from the endpoint looks like tihs:
Quote:{
"Departure" : [ {
"Product" : {
"name" : "Länstrafik -Tunnelbana 14",
"num" : "14",
"catCode" : "5",
"catOutS" : "ULT",
"catOutL" : "Länstrafik -Tunnelbana",
"operatorCode" : "275",
"operator" : "SL",
"operatorUrl" : "http://www.sl.se"
},
"Stops" : {
"Stop" : [ {
"name" : "T-Centralen T-bana (Stockholm kn)",
"id" : "740020749",
"extId" : "740020749",
"routeIdx" : 7,
"lon" : 18.059266,
"lat" : 59.330945,
"depTime" : "21:31:00",
"depDate" : "2021-03-13"
}, {
"name" : "Gamla Stan T-bana (Stockholm kn)",
"id" : "740021653",
"extId" : "740021653",
"routeIdx" : 8,
"lon" : 18.067617,
"lat" : 59.32316,
"arrTime" : "21:32:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Slussen T-bana (Stockholm kn)",
"id" : "740020101",
"extId" : "740020101",
"routeIdx" : 9,
"lon" : 18.072156,
"lat" : 59.319502,
"arrTime" : "21:34:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Mariatorget T-bana (Stockholm kn)",
"id" : "740021656",
"extId" : "740021656",
"routeIdx" : 10,
"lon" : 18.063311,
"lat" : 59.316958,
"arrTime" : "21:35:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Zinkensdamm T-bana (Stockholm kn)",
"id" : "740021657",
"extId" : "740021657",
"routeIdx" : 11,
"lon" : 18.050151,
"lat" : 59.317776,
"arrTime" : "21:37:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Hornstull T-bana (Stockholm kn)",
"id" : "740021658",
"extId" : "740021658",
"routeIdx" : 12,
"lon" : 18.034024,
"lat" : 59.315834,
"arrTime" : "21:38:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Liljeholmen T-bana (Stockholm kn)",
"id" : "740004046",
"extId" : "740004046",
"routeIdx" : 13,
"lon" : 18.023129,
"lat" : 59.31071,
"arrTime" : "21:41:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Midsommarkransen T-bana (Stockholm kn)",
"id" : "740021715",
"extId" : "740021715",
"routeIdx" : 14,
"lon" : 18.012037,
"lat" : 59.301856,
"arrTime" : "21:43:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Telefonplan T-bana (Stockholm kn)",
"id" : "740021716",
"extId" : "740021716",
"routeIdx" : 15,
"lon" : 17.997231,
"lat" : 59.298323,
"arrTime" : "21:44:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Hägerstensåsen T-bana (Stockholm kn)",
"id" : "740021717",
"extId" : "740021717",
"routeIdx" : 16,
"lon" : 17.979154,
"lat" : 59.295572,
"arrTime" : "21:46:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Västertorp T-bana (Stockholm kn)",
"id" : "740021718",
"extId" : "740021718",
"routeIdx" : 17,
"lon" : 17.966668,
"lat" : 59.291383,
"arrTime" : "21:48:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Fruängen T-bana (Stockholm kn)",
"id" : "740021719",
"extId" : "740021719",
"routeIdx" : 18,
"lon" : 17.965005,
"lat" : 59.285927,
"arrTime" : "21:49:00",
"arrDate" : "2021-03-13"
} ]
},
"name" : "Länstrafik -Tunnelbana 14",
"type" : "S",
"stop" : "T-Centralen T-bana (Stockholm kn)",
"stopid" : "740020749",
"stopExtId" : "740020749",
"time" : "21:31:00",
"date" : "2021-03-13",
"direction" : "Fruängen T-bana (Stockholm kn)",
"transportNumber" : "14",
"transportCategory" : "ULT"
}, {
"Product" : {
"name" : "Länstrafik - Buss 54",
"num" : "54",
"catCode" : "7",
"catOutS" : "BLT",
"catOutL" : "Länstrafik - Buss",
"operatorCode" : "275",
"operator" : "SL",
"operatorUrl" : "http://www.sl.se"
},
"Stops" : {
"Stop" : [ {
"name" : "T-Centralen Spårv (Stockholm kn)",
"id" : "740035997",
"extId" : "740035997",
"routeIdx" : 18,
"lon" : 18.062133,
"lat" : 59.332131,
"depTime" : "21:31:00",
"depDate" : "2021-03-13"
}, {
"name" : "Stockholm C Klarabergsviadukte",
"id" : "740004383",
"extId" : "740004383",
"routeIdx" : 19,
"lon" : 18.058376,
"lat" : 59.331107,
"arrTime" : "21:34:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Bolinders plan (Stockholm kn)",
"id" : "740046127",
"extId" : "740046127",
"routeIdx" : 20,
"lon" : 18.050555,
"lat" : 59.330001,
"arrTime" : "21:35:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Pipersgatan (Stockholm kn)",
"id" : "740046126",
"extId" : "740046126",
"routeIdx" : 21,
"lon" : 18.047301,
"lat" : 59.331107,
"arrTime" : "21:36:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Stockholm Rådhuset",
"id" : "740045261",
"extId" : "740045261",
"routeIdx" : 22,
"lon" : 18.044227,
"lat" : 59.331035,
"arrTime" : "21:37:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Kungsholmstorg (Stockholm kn)",
"id" : "740046080",
"extId" : "740046080",
"routeIdx" : 23,
"lon" : 18.043265,
"lat" : 59.329282,
"arrTime" : "21:38:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Polhemsgatan (Stockholm kn)",
"id" : "740046078",
"extId" : "740046078",
"routeIdx" : 24,
"lon" : 18.03575,
"lat" : 59.330163,
"arrTime" : "21:39:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Kronobergsgatan (på Hantverkargatan) (Stockholm kn",
"id" : "740046077",
"extId" : "740046077",
"routeIdx" : 25,
"lon" : 18.031741,
"lat" : 59.330882,
"arrTime" : "21:40:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Fridhemsplan T-bana (Stockholm kn)",
"id" : "740021661",
"extId" : "740021661",
"routeIdx" : 26,
"lon" : 18.029188,
"lat" : 59.332203,
"arrTime" : "21:42:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Mariebergsgatan (Stockholm kn)",
"id" : "740046095",
"extId" : "740046095",
"routeIdx" : 27,
"lon" : 18.024001,
"lat" : 59.331556,
"arrTime" : "21:43:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Västerbroplan (Stockholm kn)",
"id" : "740046154",
"extId" : "740046154",
"routeIdx" : 28,
"lon" : 18.021125,
"lat" : 59.328185,
"arrTime" : "21:44:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Högalidsgatan (Stockholm kn)",
"id" : "740046155",
"extId" : "740046155",
"routeIdx" : 29,
"lon" : 18.032298,
"lat" : 59.318495,
"arrTime" : "21:46:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Hornstull T-bana (Stockholm kn)",
"id" : "740021658",
"extId" : "740021658",
"routeIdx" : 30,
"lon" : 18.034024,
"lat" : 59.315834,
"arrTime" : "21:48:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Lindvallsplan (Stockholm kn)",
"id" : "740046151",
"extId" : "740046151",
"routeIdx" : 31,
"lon" : 18.029035,
"lat" : 59.316661,
"arrTime" : "21:50:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Bergsunds strand (Stockholm kn)",
"id" : "740046226",
"extId" : "740046226",
"routeIdx" : 32,
"lon" : 18.026986,
"lat" : 59.318405,
"arrTime" : "21:51:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Anders Reimers väg (Stockholm kn)",
"id" : "740046225",
"extId" : "740046225",
"routeIdx" : 33,
"lon" : 18.025062,
"lat" : 59.318504,
"arrTime" : "21:52:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Reimersholme (Stockholm kn)",
"id" : "740046222",
"extId" : "740046222",
"routeIdx" : 34,
"lon" : 18.021035,
"lat" : 59.317911,
"arrTime" : "21:54:00",
"arrDate" : "2021-03-13"
} ]
},
"name" : "Länstrafik - Buss 54",
"type" : "S",
"stop" : "T-Centralen Spårv (Stockholm kn)",
"stopid" : "740035997",
"stopExtId" : "740035997",
"time" : "21:31:00",
"date" : "2021-03-13",
"direction" : "Reimersholme (Stockholm kn)",
"transportNumber" : "54",
"transportCategory" : "BLT"
}, {
"Product" : {
"name" : "Länstrafik -Tunnelbana 14",
"num" : "14",
"catCode" : "5",
"catOutS" : "ULT",
"catOutL" : "Länstrafik -Tunnelbana",
"operatorCode" : "275",
"operator" : "SL",
"operatorUrl" : "http://www.sl.se"
},
"Stops" : {
"Stop" : [ {
"name" : "T-Centralen T-bana (Stockholm kn)",
"id" : "740020749",
"extId" : "740020749",
"routeIdx" : 11,
"lon" : 18.059266,
"lat" : 59.330945,
"depTime" : "21:32:00",
"depDate" : "2021-03-13"
}, {
"name" : "Östermalmstorg T-bana (Stockholm kn)",
"id" : "740021651",
"extId" : "740021651",
"routeIdx" : 12,
"lon" : 18.07408,
"lat" : 59.334972,
"arrTime" : "21:35:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Stadion T-bana (Stockholm kn)",
"id" : "740021647",
"extId" : "740021647",
"routeIdx" : 13,
"lon" : 18.081703,
"lat" : 59.342963,
"arrTime" : "21:36:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Tekniska Högskolan T-bana (Stockholm kn)",
"id" : "740011606",
"extId" : "740011606",
"routeIdx" : 14,
"lon" : 18.071716,
"lat" : 59.345822,
"arrTime" : "21:38:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Universitetet T-bana (Stockholm kn)",
"id" : "740021645",
"extId" : "740021645",
"routeIdx" : 15,
"lon" : 18.054888,
"lat" : 59.365571,
"arrTime" : "21:41:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Bergshamra T-bana (Solna kn)",
"id" : "740021644",
"extId" : "740021644",
"routeIdx" : 16,
"lon" : 18.036514,
"lat" : 59.381509,
"arrTime" : "21:43:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Danderyds sjukhus T-bana",
"id" : "740010232",
"extId" : "740010232",
"routeIdx" : 17,
"lon" : 18.041368,
"lat" : 59.391901,
"arrTime" : "21:45:00",
"arrDate" : "2021-03-13"
}, {
"name" : "Mörby centrum T-bana (Danderyd kn)",
"id" : "740000716",
"extId" : "740000716",
"routeIdx" : 18,
"lon" : 18.036218,
"lat" : 59.398706,
"arrTime" : "21:47:00",
"arrDate" : "2021-03-13"
} ]
},
"name" : "Länstrafik -Tunnelbana 14",
"type" : "S",
"stop" : "T-Centralen T-bana (Stockholm kn)",
"stopid" : "740020749",
"stopExtId" : "740020749",
"time" : "21:32:00",
"date" : "2021-03-13",
"direction" : "Mörby centrum T-bana (Danderyd kn)",
"transportNumber" : "14",
"transportCategory" : "ULT"
} ]
}

And what I *want* from the raw data is values nested within the Departure key, namely the lines name, time, and direction:


Output:
Departure |- 0 |- name "Länstrafik -Tunnelbana 14" |-time "21:31:00" |-direction "Fruängen T-bana (Stockholm kn)" |-1 |- name "Länstrafik - Buss 54" |- time "21:31:00" |- direction "Reimersholme (Stockholm kn)"
Currently the output of >>> print (input_json_keyfilter) is below:

Output:
>>> print (input_json_keyfilter) [{'Product': {'name': 'Länstrafik -Tunnelbana 14', 'num': '14', 'catCode': '5', 'catOutS': 'ULT', 'catOutL': 'Länstrafik -Tunnelbana', 'operatorCode': '275', 'operator': 'SL', 'operatorUrl': 'http://www.sl.se'}, 'Stops': {'Stop': [{'name': 'T-Centralen T-bana (Stockholm kn)', 'id': '740020749', 'extId': '740020749', 'routeIdx': 11, 'lon': 18.059266, 'lat': 59.330945, 'depTime': '21:42:00', 'depDate': '2021-03-13'}, {'name': 'Östermalmstorg T-bana (Stockholm kn)', 'id': '740021651', 'extId': '740021651', 'routeIdx': 12, 'lon': 18.07408, 'lat': 59.334972, 'arrTime': '21:45:00', 'arrDate': '2021-03-13'}, {'name': 'Stadion T-bana (Stockholm kn)', 'id': '740021647', 'extId': '740021647', 'routeIdx': 13, 'lon': 18.081703, 'lat': 59.342963, 'arrTime': '21:46:00', 'arrDate': '2021-03-13'}, {'name': 'Tekniska Högskolan T-bana (Stockholm kn)', 'id': '740011606', 'extId': '740011606', 'routeIdx': 14, 'lon': 18.071716, 'lat': 59.345822, 'arrTime': '21:48:00', 'arrDate': '2021-03-13'}, {'name': 'Universitetet T-bana (Stockholm kn)', 'id': '740021645', 'extId': '740021645', 'routeIdx': 15, 'lon': 18.054888, 'lat': 59.365571, 'arrTime': '21:51:00', 'arrDate': '2021-03-13'}, {'name': 'Bergshamra T-bana (Solna kn)', 'id': '740021644', 'extId': '740021644', 'routeIdx': 16, 'lon': 18.036514, 'lat': 59.381509, 'arrTime': '21:53:00', 'arrDate': '2021-03-13'}, {'name': 'Danderyds sjukhus T-bana', 'id': '740010232', 'extId': '740010232', 'routeIdx': 17, 'lon': 18.041368, 'lat': 59.391901, 'arrTime': '21:55:00', 'arrDate': '2021-03-13'}, {'name': 'Mörby centrum T-bana (Danderyd kn)', 'id': '740000716', 'extId': '740000716', 'routeIdx': 18, 'lon': 18.036218, 'lat': 59.398706, 'arrTime': '21:57:00', 'arrDate': '2021-03-13'}]}, 'name': 'Länstrafik -Tunnelbana 14', 'type': 'S', 'stop': 'T-Centralen T-bana (Stockholm kn)', 'stopid': '740020749', 'stopExtId': '740020749', 'time': '21:42:00', 'date': '2021-03-13', 'direction': 'Mörby centrum T-bana (Danderyd kn)', 'transportNumber': '14', 'transportCategory': 'ULT'}, {'Product': {'name': 'Länstrafik -Tunnelbana 19', 'num': '19', 'catCode': '5', 'catOutS': 'ULT', 'catOutL': 'Länstrafik -Tunnelbana', 'operatorCode': '275', 'operator': 'SL', 'operatorUrl': 'http://www.sl.se'}, 'Stops': {'Stop': [{'name': 'T-Centralen T-bana (Stockholm kn)', 'id': '740020749', 'extId': '740020749', 'routeIdx': 14, 'lon': 18.059266, 'lat': 59.330945, 'depTime': '21:43:00', 'depDate': '2021-03-13'}, {'name': 'Hötorget T-bana (Stockholm kn)', 'id': '740021667', 'extId': '740021667', 'routeIdx': 15, 'lon': 18.063536, 'lat': 59.335529, 'arrTime': '21:44:00', 'arrDate': '2021-03-13'}, {'name': 'Rådmansgatan T-bana (Stockholm kn)', 'id': '740021666', 'extId': '740021666', 'routeIdx': 16, 'lon': 18.058771, 'lat': 59.340572, 'arrTime': '21:45:00', 'arrDate': '2021-03-13'}, {'name': 'Odenplan T-bana (Stockholm kn)', 'id': '740021013', 'extId': '740021013', 'routeIdx': 17, 'lon': 18.049701, 'lat': 59.342954, 'arrTime': '21:47:00', 'arrDate': '2021-03-13'}, {'name': 'S:t Eriksplan T-bana (Stockholm kn)', 'id': '740021665', 'extId': '740021665', 'routeIdx': 18, 'lon': 18.036991, 'lat': 59.339655, 'arrTime': '21:48:00', 'arrDate': '2021-03-13'}, {'name': 'Fridhemsplan T-bana (Stockholm kn)', 'id': '740021661', 'extId': '740021661', 'routeIdx': 19, 'lon': 18.029188, 'lat': 59.332203, 'arrTime': '21:50:00', 'arrDate': '2021-03-13'}, {'name': 'Thorildsplan T-bana (Stockholm kn)', 'id': '740021664', 'extId': '740021664', 'routeIdx': 20, 'lon': 18.015434, 'lat': 59.331817, 'arrTime': '21:51:00', 'arrDate': '2021-03-13'}, {'name': 'Kristineberg T-bana (Stockholm kn)', 'id': '740021663', 'extId': '740021663', 'routeIdx': 21, 'lon': 18.003182, 'lat': 59.332815, 'arrTime': '21:53:00', 'arrDate': '2021-03-13'}, {'name': 'Alvik T-bana (Stockholm kn)', 'id': '740020755', 'extId': '740020755', 'routeIdx': 22, 'lon': 17.980269, 'lat': 59.333633, 'arrTime': '21:56:00', 'arrDate': '2021-03-13'}, {'name': 'Stora Mossen T-bana (Stockholm kn)', 'id': '740021690', 'extId': '740021690', 'routeIdx': 23, 'lon': 17.966192, 'lat': 59.334532, 'arrTime': '21:58:00', 'arrDate': '2021-03-13'}, {'name': 'Abrahamsberg T-bana (Stockholm kn)', 'id': '740021689', 'extId': '740021689', 'routeIdx': 24, 'lon': 17.95295, 'lat': 59.33668, 'arrTime': '21:59:00', 'arrDate': '2021-03-13'}, {'name': 'Brommaplan T-bana (Stockholm kn)', 'id': '740020581', 'extId': '740020581', 'routeIdx': 25, 'lon': 17.93926, 'lat': 59.338388, 'arrTime': '22:01:00', 'arrDate': '2021-03-13'}, {'name': 'Åkeshov T-bana (Stockholm kn)', 'id': '740021688', 'extId': '740021688', 'routeIdx': 26, 'lon': 17.924904, 'lat': 59.342038, 'arrTime': '22:03:00', 'arrDate': '2021-03-13'}, {'name': 'Ängbyplan T-bana (Stockholm kn)', 'id': '740021687', 'extId': '740021687', 'routeIdx': 27, 'lon': 17.907052, 'lat': 59.341885, 'arrTime': '22:04:00', 'arrDate': '2021-03-13'}, {'name': 'Islandstorget T-bana (Stockholm kn)', 'id': '740021686', 'extId': '740021686', 'routeIdx': 28, 'lon': 17.894017, 'lat': 59.345858, 'arrTime': '22:06:00', 'arrDate': '2021-03-13'}, {'name': 'Blackeberg T-bana (Stockholm kn)', 'id': '740021685', 'extId': '740021685', 'routeIdx': 29, 'lon': 17.882799, 'lat': 59.348357, 'arrTime': '22:07:00', 'arrDate': '2021-03-13'}, {'name': 'Råcksta T-bana (Stockholm kn)', 'id': '740021684', 'extId': '740021684', 'routeIdx': 30, 'lon': 17.881819, 'lat': 59.354802, 'arrTime': '22:09:00', 'arrDate': '2021-03-13'}, {'name': 'Vällingby T-bana (Stockholm kn)', 'id': '740021683', 'extId': '740021683', 'routeIdx': 31, 'lon': 17.872066, 'lat': 59.363252, 'arrTime': '22:11:00', 'arrDate': '2021-03-13'}, {'name': 'Johannelund T-bana (Stockholm kn)', 'id': '740021682', 'extId': '740021682', 'routeIdx': 32, 'lon': 17.857467, 'lat': 59.367944, 'arrTime': '22:12:00', 'arrDate': '2021-03-13'}, {'name': 'Hässelby Gård T-bana (Stockholm kn)', 'id': '740021681', 'extId': '740021681', 'routeIdx': 33, 'lon': 17.843767, 'lat': 59.366902, 'arrTime': '22:13:00', 'arrDate': '2021-03-13'}, {'name': 'Hässelby Strand T-bana (Stockholm kn)', 'id': '740021680', 'extId': '740021680', 'routeIdx': 34, 'lon': 17.832351, 'lat': 59.361283, 'arrTime': '22:16:00', 'arrDate': '2021-03-13'}]}, 'name': 'Länstrafik -Tunnelbana 19', 'type': 'S', 'stop': 'T-Centralen T-bana (Stockholm kn)', 'stopid': '740020749', 'stopExtId': '740020749', 'time': '21:43:00', 'date': '2021-03-13', 'direction': 'Hässelby Strand T-bana (Stockholm kn)', 'transportNumber': '19', 'transportCategory': 'ULT'}, {'Product': {'name': 'Länstrafik -Tunnelbana 18', 'num': '18', 'catCode': '5', 'catOutS': 'ULT', 'catOutL': 'Länstrafik -Tunnelbana', 'operatorCode': '275', 'operator': 'SL', 'operatorUrl': 'http://www.sl.se'}, 'Stops': {'Stop': [{'name': 'T-Centralen T-bana (Stockholm kn)', 'id': '740020749', 'extId': '740020749', 'routeIdx': 8, 'lon': 18.059266, 'lat': 59.330945, 'depTime': '21:44:00', 'depDate': '2021-03-13'}, {'name': 'Gamla Stan T-bana (Stockholm kn)', 'id': '740021653', 'extId': '740021653', 'routeIdx': 9, 'lon': 18.067617, 'lat': 59.32316, 'arrTime': '21:45:00', 'arrDate': '2021-03-13'}, {'name': 'Slussen T-bana (Stockholm kn)', 'id': '740020101', 'extId': '740020101', 'routeIdx': 10, 'lon': 18.072156, 'lat': 59.319502, 'arrTime': '21:47:00', 'arrDate': '2021-03-13'}, {'name': 'Medborgarplatsen T-bana (Stockholm kn)', 'id': '740021654', 'extId': '740021654', 'routeIdx': 11, 'lon': 18.07355, 'lat': 59.314342, 'arrTime': '21:48:00', 'arrDate': '2021-03-13'}, {'name': 'Skanstull T-bana (Stockholm kn)', 'id': '740021655', 'extId': '740021655', 'routeIdx': 12, 'lon': 18.076229, 'lat': 59.307852, 'arrTime': '21:50:00', 'arrDate': '2021-03-13'}, {'name': 'Gullmarsplan T-bana (Stockholm kn)', 'id': '740021705', 'extId': '740021705', 'routeIdx': 13, 'lon': 18.080768, 'lat': 59.299114, 'arrTime': '21:53:00', 'arrDate': '2021-03-13'}, {'name': 'Skärmarbrink T-bana (Stockholm kn)', 'id': '740021704', 'extId': '740021704', 'routeIdx': 14, 'lon': 18.09044, 'lat': 59.295366, 'arrTime': '21:54:00', 'arrDate': '2021-03-13'}, {'name': 'Blåsut T-bana (Stockholm kn)', 'id': '740021703', 'extId': '740021703', 'routeIdx': 15, 'lon': 18.091061, 'lat': 59.290242, 'arrTime': '21:56:00', 'arrDate': '2021-03-13'}, {'name': 'Sandsborg T-bana (Stockholm kn)', 'id': '740021702', 'extId': '740021702', 'routeIdx': 16, 'lon': 18.092382, 'lat': 59.284785, 'arrTime': '21:57:00', 'arrDate': '2021-03-13'}, {'name': 'Skogskyrkogården T-bana (Stockholm kn)', 'id': '740021701', 'extId': '740021701', 'routeIdx': 17, 'lon': 18.095501, 'lat': 59.279194, 'arrTime': '21:58:00', 'arrDate': '2021-03-13'}, {'name': 'Tallkrogen T-bana (Stockholm kn)', 'id': '740021700', 'extId': '740021700', 'routeIdx': 18, 'lon': 18.085326, 'lat': 59.27114, 'arrTime': '22:00:00', 'arrDate': '2021-03-13'}, {'name': 'Gubbängen T-bana (Stockholm kn)', 'id': '740021699', 'extId': '740021699', 'routeIdx': 19, 'lon': 18.082036, 'lat': 59.262879, 'arrTime': '22:01:00', 'arrDate': '2021-03-13'}, {'name': 'Hökarängen T-bana (Stockholm kn)', 'id': '740021698', 'extId': '740021698', 'routeIdx': 20, 'lon': 18.082494, 'lat': 59.257925, 'arrTime': '22:03:00', 'arrDate': '2021-03-13'}, {'name': 'Farsta T-bana (Stockholm kn)', 'id': '740021697', 'extId': '740021697', 'routeIdx': 21, 'lon': 18.093281, 'lat': 59.243552, 'arrTime': '22:05:00', 'arrDate': '2021-03-13'}, {'name': 'Farsta Strand T-bana (Stockholm kn)', 'id': '740021696', 'extId': '740021696', 'routeIdx': 22, 'lon': 18.10174, 'lat': 59.235012, 'arrTime': '22:08:00', 'arrDate': '2021-03-13'}]}, 'name': 'Länstrafik -Tunnelbana 18', 'type': 'S', 'stop': 'T-Centralen T-bana (Stockholm kn)', 'stopid': '740020749', 'stopExtId': '740020749', 'time': '21:44:00', 'date': '2021-03-13', 'direction': 'Farsta Strand T-bana (Stockholm kn)', 'transportNumber': '18', 'transportCategory': 'ULT'}]
My question is the following: Since I already got into the first level (departure) of the json with input_json_keyfilter = input_json.get("Departure"), which approach / functions should I use to get the other levels with the values I want to extract (0 -> name, time direction | 1 -> name, time, direction etc.)?

I have been thinking of splitting the chunk of text above at the ", " delimiter, and have each key/value placed in a list or dict - which would make it much easier to pull that information in a "dumb" and static way, but I still don't know how to use split() on input_json_keyfilter as it is of class 'list'

Thanks in advance for any help!
Reply
#2
The json data is just nested structures. It doesn't "convert" from a dict to a list. The value of your "Departures" object is a list with 3 items inside. In your "want" output, these elements are shown with the numbers 0 and 1. So if you want the "Länstrafik -Tunnelbana 14" data, that is just input_json_keyfilter[0]. And of course the name is input_json_keyfilter[0]["name"]

Add this after the end of your program
for line in input_json_keyfilter:
    print(f"line {line['name']} runs in direction {line['direction']}")
    print(f"  it starts at {line['time']}")
Output:
line Länstrafik -Tunnelbana 14 runs in direction Fruängen T-bana (Stockholm kn) it starts at 21:31:00 line Länstrafik - Buss 54 runs in direction Reimersholme (Stockholm kn) it starts at 21:31:00 line Länstrafik -Tunnelbana 14 runs in direction Mörby centrum T-bana (Danderyd kn) it starts at 21:32:00
Reply
#3
Also you don't need to import json,Requests can handle this alone.
import requests
 
response = requests.get('https://api.resrobot.se/v2/departureBoard?REDACTED')
 
# Will now be a dictionary
json_data = response.json()
kashcode likes this post
Reply
#4
Thanks a bunch, @bowlofred ! I was unsure of how to use for-loop in this case, but with your example I now know a real-world case for using them. Plus, now I've learned about Formatted string literals :-)

@snippsat Thanks, now my program is even more slim. All in all, my code is as below. Do you see anything I could improve in it to follow good practices? I do need to assign a value to response variable, but do I need to load the json into input_json and latter to input_json_keyfilter ?

Thanks again Smile

import requests
response = requests.get('https://api.resrobot.se/v2/departureBoard?key=REDACTED')
input_json = response.json()
input_json_keyfilter = input_json.get("Departure")
for line in input_json_keyfilter:
    print(f" {line['transportNumber']} -> {line['direction']}")
    print(f"      {line['time']}")
Reply
#5
Add empty list as default value in get(). If your json has no Departure key, the get() method will prevent KeyError only to to get TypeError on the next line because NoneType is not iterable.

input_json_keyfilter = input_json.get("Departure", [])
also, there is no problem to do directly
input_json = response.json()
for line in input_json.get("Departure", []):
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Printing specific values out from a dictionary mcoliver88 6 1,316 Apr-12-2023, 08:10 PM
Last Post: deanhystad
  Printing string at specific position on terminal - not showing __Mathieu__ 1 2,331 Sep-07-2020, 10:32 AM
Last Post: Larz60+
  Monitor specific line of code from website Olimpiarob 1 1,805 Jul-09-2020, 03:20 PM
Last Post: mrdominikku
  update txt file but keep a specific line 3Pinter 2 2,034 Dec-16-2019, 07:54 AM
Last Post: 3Pinter
  extract specific data from a group of json-files ledgreve 3 3,237 Dec-05-2019, 07:57 PM
Last Post: ndc85430
  Delete specific lines contain specific words mannyi 2 4,064 Nov-04-2019, 04:50 PM
Last Post: mannyi
  insert value to specific line in CSV file asheru93 1 1,740 Oct-21-2019, 03:37 PM
Last Post: Larz60+
  Finding a specific line in a file Vqlk 3 2,529 Sep-07-2019, 08:20 PM
Last Post: Axel_Erfurt
  Python start from a specific string line and write? searching1 1 2,182 Jun-27-2019, 02:28 PM
Last Post: perfringo
  Printing List in one line bharat_s579 6 4,047 May-26-2019, 08:30 PM
Last Post: perfringo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020