Paranth Paranth - 2 months ago 9
JSON Question

How to extract data from complex Json using python

{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
},
{
"long_name" : "Amphitheatre Parkway",
"short_name" : "Amphitheatre Pkwy",
"types" : [ "route" ]
},
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara County",
"short_name" : "Santa Clara County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "California",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "94043",
"short_name" : "94043",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"geometry" : {
"location" : {
"lat" : 37.4224484,
"lng" : -122.0843249
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 37.4237973802915,
"lng" : -122.0829759197085
},
"southwest" : {
"lat" : 37.4210994197085,
"lng" : -122.0856738802915
}
}
},
"place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}


How can i retrieve
formatted_address
,
Lat
and
Long
under
geometry>Location
etc. from json. Most of the json tutorials are explained with simple json file.
Kindly help me on this and help me find some good tutorials

Answer

Actually, simple JSONs and complex JSONs are not that different. You can say that a complex JSON has many simpler JSONs inside, so if you know how to get data from simple ones, you end up knowing how to get data from complexes

Anyway, think of JSON objects as dictionaries and JSON arrays as lists. To get data from dicts, use the key for a value. To get data from lists, use the index (position) of a value.

So, in your case:

lat = json["results"][0]["geometry"]["location"]["lat"]
long = json["results"][0]["geometry"]["location"]["lng"]

and

formatted_address = json["results"][0]["formatted_address"]

Notice how the navigation through keys occur, and how you get deeper as you retrieve values from its keys

Comments