When trying to parse JSON dict using json_normalize()
function it works for a JSON string, but when the elements from the JSON string changes it throws error,
I have got a function created from this post
here is the JSON_string for which the code works
{"results": [{"address_components": [{"long_name": "Satya Niwas",
"short_name": "Satya Niwas",
"types": ["establishment", "point_of_interest", "premise"]},
{"long_name": "Kanti Nagar",
"short_name": "Kanti Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400059", "short_name": "400059", "types": ["postal_code"]}],
"formatted_address": "Satya Niwas, Kanti Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400059, India",
"geometry": {"bounds": {"northeast": {"lat": 19.1097923, "lng": 72.8675306},
"southwest": {"lat": 19.1095784, "lng": 72.8673391}},
"location": {"lat": 19.1096591, "lng": 72.8674712},
"location_type": "ROOFTOP",
"viewport": {"northeast": {"lat": 19.1110343302915,
"lng": 72.8687838302915},
"southwest": {"lat": 19.1083363697085, "lng": 72.86608586970848}}},
"place_id": "ChIJ4UsP5DjI5zsR8hgwhHo9wEk",
"types": ["establishment", "point_of_interest", "premise"]},
{"address_components": [{"long_name": "82",
"short_name": "82",
"types": ["premise"]},
{"long_name": "Bamanpuri",
"short_name": "Bamanpuri",
"types": ["neighborhood", "political"]},
{"long_name": "Ajit Nagar",
"short_name": "Ajit Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400053", "short_name": "400053", "types": ["postal_code"]}],
"formatted_address": "82, Bamanpuri, Ajit Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400053, India",
"geometry": {"location": {"lat": 19.109749, "lng": 72.867249},
"location_type": "ROOFTOP",
"viewport": {"northeast": {"lat": 19.1110979802915,
"lng": 72.8685979802915},
"southwest": {"lat": 19.1084000197085, "lng": 72.86590001970849}}},
"place_id": "ChIJqYip4zjI5zsR0Yg8bdXQX3o",
"types": ["street_address"]},
{"address_components": [{"long_name": "Todi Building",
"short_name": "Todi Building",
"types": ["premise"]},
{"long_name": "Sheth Bhavanidas Benani Marg",
"short_name": "Sheth Bhavanidas Benani Marg",
"types": ["route"]},
{"long_name": "Kanti Nagar",
"short_name": "Kanti Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400059", "short_name": "400059", "types": ["postal_code"]}],
"formatted_address": "Todi Building, Sheth Bhavanidas Benani Marg, Kanti Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400059, India",
"geometry": {"location": {"lat": 19.1098265, "lng": 72.86778869999999},
"location_type": "ROOFTOP",
"viewport": {"northeast": {"lat": 19.1111754802915,
"lng": 72.86913768029149},
"southwest": {"lat": 19.1084775197085, "lng": 72.86643971970848}}},
"place_id": "ChIJo5bq3zjI5zsR2hRaNQF3xd0",
"types": ["premise"]},
{"address_components": [{"long_name": "KASI APARTMENTS",
"short_name": "KASI APARTMENTS",
"types": ["establishment", "point_of_interest", "premise"]},
{"long_name": "Shriniwas Bagarka Road",
"short_name": "Shriniwas Bagarka Rd",
"types": ["route"]},
{"long_name": "Bamanpuri",
"short_name": "Bamanpuri",
"types": ["neighborhood", "political"]},
{"long_name": "Kanti Nagar",
"short_name": "Kanti Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400059", "short_name": "400059", "types": ["postal_code"]}],
"formatted_address": "KASI APARTMENTS, Shriniwas Bagarka Rd, Bamanpuri, Kanti Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400059, India",
"geometry": {"location": {"lat": 19.1093338, "lng": 72.8670515},
"location_type": "ROOFTOP",
"viewport": {"northeast": {"lat": 19.1106827802915,
"lng": 72.86840048029151},
"southwest": {"lat": 19.10798481970849, "lng": 72.86570251970849}}},
"place_id": "ChIJoUz25DjI5zsRiMoiQtq5kXs",
"types": ["establishment", "point_of_interest", "premise"]},
{"address_components": [{"long_name": "Silver Line Apts.",
"short_name": "Silver Line Apts.",
"types": ["premise"]},
{"long_name": "Bamanpuri",
"short_name": "Bamanpuri",
"types": ["neighborhood", "political"]},
{"long_name": "J.B. Nagar",
"short_name": "J.B. Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400047", "short_name": "400047", "types": ["postal_code"]}],
"formatted_address": "Silver Line Apts., Bamanpuri, J.B. Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400047, India",
"geometry": {"location": {"lat": 19.1091075, "lng": 72.8670776},
"location_type": "ROOFTOP",
"viewport": {"northeast": {"lat": 19.1104564802915,
"lng": 72.86842658029151},
"southwest": {"lat": 19.1077585197085, "lng": 72.86572861970849}}},
"place_id": "ChIJEQ3_ZzjI5zsR9LxIP1h2b2c",
"types": ["premise"]},
{"address_components": [{"long_name": "Gokul panch chs",
"short_name": "Gokul panch chs",
"types": ["establishment", "point_of_interest"]},
{"long_name": "81-B", "short_name": "81-B", "types": ["street_number"]},
{"long_name": "Sheth Bhavanidas Benani Marg",
"short_name": "Sheth Bhavanidas Benani Marg",
"types": ["route"]},
{"long_name": "Bamanpuri",
"short_name": "Bamanpuri",
"types": ["neighborhood", "political"]},
{"long_name": "Ajit Nagar",
"short_name": "Ajit Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400047", "short_name": "400047", "types": ["postal_code"]}],
"formatted_address": "Gokul panch chs, 81-B, 81-B, Sheth Bhavanidas Benani Marg, Bamanpuri, Ajit Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400047, India",
"geometry": {"location": {"lat": 19.1098713, "lng": 72.86705669999999},
"location_type": "ROOFTOP",
"viewport": {"northeast": {"lat": 19.1112202802915,
"lng": 72.8684056802915},
"southwest": {"lat": 19.1085223197085, "lng": 72.8657077197085}}},
"place_id": "ChIJpUuz4jjI5zsRpgQdmR5E1v0",
"types": ["establishment", "point_of_interest"]},
{"address_components": [{"long_name": "Ajit Nagar",
"short_name": "Ajit Nagar",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400047", "short_name": "400047", "types": ["postal_code"]}],
"formatted_address": "Ajit Nagar, J B Nagar, Andheri East, Mumbai, Maharashtra 400047, India",
"geometry": {"bounds": {"northeast": {"lat": 19.1119198, "lng": 72.8714133},
"southwest": {"lat": 19.1085396, "lng": 72.8662167}},
"location": {"lat": 19.1103164, "lng": 72.8680732},
"location_type": "APPROXIMATE",
"viewport": {"northeast": {"lat": 19.1119198, "lng": 72.8714133},
"southwest": {"lat": 19.1085396, "lng": 72.8662167}}},
"place_id": "ChIJPWPg4zjI5zsRJWPFphEkcxc",
"types": ["political", "sublocality", "sublocality_level_3"]},
{"address_components": [{"long_name": "Bamanpuri",
"short_name": "Bamanpuri",
"types": ["neighborhood", "political"]},
{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400047", "short_name": "400047", "types": ["postal_code"]}],
"formatted_address": "Bamanpuri, J B Nagar, Andheri East, Mumbai, Maharashtra 400047, India",
"geometry": {"bounds": {"northeast": {"lat": 19.1102874, "lng": 72.869838},
"southwest": {"lat": 19.1060651, "lng": 72.8635609}},
"location": {"lat": 19.1084347, "lng": 72.86574929999999},
"location_type": "APPROXIMATE",
"viewport": {"northeast": {"lat": 19.1102874, "lng": 72.869838},
"southwest": {"lat": 19.1060651, "lng": 72.8635609}}},
"place_id": "ChIJIYgnUDjI5zsRK_Zl9Zy_QkY",
"types": ["neighborhood", "political"]},
{"address_components": [{"long_name": "J B Nagar",
"short_name": "J B Nagar",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]},
{"long_name": "400047", "short_name": "400047", "types": ["postal_code"]}],
"formatted_address": "J B Nagar, Andheri East, Mumbai, Maharashtra 400047, India",
"geometry": {"bounds": {"northeast": {"lat": 19.1161579, "lng": 72.871533},
"southwest": {"lat": 19.1008041, "lng": 72.8606231}},
"location": {"lat": 19.1110621, "lng": 72.8655922},
"location_type": "APPROXIMATE",
"viewport": {"northeast": {"lat": 19.1161579, "lng": 72.871533},
"southwest": {"lat": 19.1008041, "lng": 72.8606231}}},
"place_id": "ChIJt8_u6TjI5zsRR9eE5rMK45A",
"types": ["political", "sublocality", "sublocality_level_2"]},
{"address_components": [{"long_name": "Andheri East",
"short_name": "Andheri East",
"types": ["political", "sublocality", "sublocality_level_1"]},
{"long_name": "Mumbai",
"short_name": "Mumbai",
"types": ["locality", "political"]},
{"long_name": "Mumbai Suburban",
"short_name": "Mumbai Suburban",
"types": ["administrative_area_level_2", "political"]},
{"long_name": "Maharashtra",
"short_name": "MH",
"types": ["administrative_area_level_1", "political"]},
{"long_name": "India",
"short_name": "IN",
"types": ["country", "political"]}],
"formatted_address": "Andheri East, Mumbai, Maharashtra, India",
"geometry": {"bounds": {"northeast": {"lat": 19.1327276,
"lng": 72.89305499999999},
"southwest": {"lat": 19.096748, "lng": 72.843926}},
"location": {"lat": 19.1154908, "lng": 72.8726952},
"location_type": "APPROXIMATE",
"viewport": {"northeast": {"lat": 19.1327276, "lng": 72.89305499999999},
"southwest": {"lat": 19.096748, "lng": 72.843926}}},
"place_id": "ChIJMbHfQRu25zsRMazdY3UpaKY",
"types": ["political", "sublocality", "sublocality_level_1"]}],
"status": "OK"}
here is the JSON string for which the code throws error
[{"address_components":[{"long_name":"Mahapurush Srimanta Sankardeva Path","short_name":"Mahapurush Srimanta Sankardeva Path","types":["route"]},{"long_name":"Jaya Nagar","short_name":"Jaya Nagar","types":["political","sublocality","sublocality_level_2"]},{"long_name":"Khanapara","short_name":"Khanapara","types":["political","sublocality","sublocality_level_1"]},{"long_name":"Guwahati","short_name":"Guwahati","types":["locality","political"]},{"long_name":"Kamrup","short_name":"Kamrup","types":["administrative_area_level_2","political"]},{"long_name":"Assam","short_name":"AS","types":["administrative_area_level_1","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]},{"long_name":"781022","short_name":"781022","types":["postal_code"]}],"formatted_address":"Mahapurush Srimanta Sankardeva Path, Jaya Nagar, Khanapara, Guwahati, Assam 781022, India","geometry":{"bounds":{"northeast":{"lat":26.1229256,"lng":91.82034120000002},"southwest":{"lat":26.1216483,"lng":91.8187281}},"location":{"lat":26.1222853,"lng":91.81953299999999},"location_type":"GEOMETRIC_CENTER","viewport":{"northeast":{"lat":26.1236359302915,"lng":91.82088363029152},"southwest":{"lat":26.1209379697085,"lng":91.81818566970851}}},"place_id":"ChIJE7wy_UxfWjcReOFKsRJcLbY","types":["route"]},{"address_components":[{"long_name":"Jaya Nagar","short_name":"Jaya Nagar","types":["political","sublocality","sublocality_level_2"]},{"long_name":"Khanapara","short_name":"Khanapara","types":["political","sublocality","sublocality_level_1"]},{"long_name":"Guwahati","short_name":"Guwahati","types":["locality","political"]},{"long_name":"Kamrup","short_name":"Kamrup","types":["administrative_area_level_2","political"]},{"long_name":"Assam","short_name":"AS","types":["administrative_area_level_1","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"Jaya Nagar, Khanapara, Guwahati, Assam, India","geometry":{"bounds":{"northeast":{"lat":26.131154,"lng":91.82092899999999},"southwest":{"lat":26.1185207,"lng":91.801772}},"location":{"lat":26.1283426,"lng":91.8082767},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":26.131154,"lng":91.82092899999999},"southwest":{"lat":26.1185207,"lng":91.801772}}},"place_id":"ChIJx8tapjVfWjcRs-TGDEtAbBM","types":["political","sublocality","sublocality_level_2"]},{"address_components":[{"long_name":"Khanapara","short_name":"Khanapara","types":["political","sublocality","sublocality_level_1"]},{"long_name":"Guwahati","short_name":"Guwahati","types":["locality","political"]},{"long_name":"Kamrup","short_name":"Kamrup","types":["administrative_area_level_2","political"]},{"long_name":"Assam","short_name":"AS","types":["administrative_area_level_1","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"Khanapara, Guwahati, Assam, India","geometry":{"bounds":{"northeast":{"lat":26.1335761,"lng":91.84463509999999},"southwest":{"lat":26.113873,"lng":91.80529299999999}},"location":{"lat":26.1245811,"lng":91.81113789999999},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":26.1335761,"lng":91.84463509999999},"southwest":{"lat":26.113873,"lng":91.80529299999999}}},"place_id":"ChIJt09fslNfWjcROcydXKwOx6U","types":["political","sublocality","sublocality_level_1"]},{"address_components":[{"long_name":"Guwahati","short_name":"Guwahati","types":["locality","political"]},{"long_name":"Kamrup","short_name":"Kamrup","types":["administrative_area_level_2","political"]},{"long_name":"Assam","short_name":"AS","types":["administrative_area_level_1","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"Guwahati, Assam, India","geometry":{"bounds":{"northeast":{"lat":26.2172862,"lng":91.87591959999999},"southwest":{"lat":26.068811,"lng":91.5298462}},"location":{"lat":26.1445169,"lng":91.7362365},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":26.2172862,"lng":91.87591959999999},"southwest":{"lat":26.068811,"lng":91.5298462}}},"place_id":"ChIJ_zORfyhaWjcRMt5rQzITvSs","types":["locality","political"]},{"address_components":[{"long_name":"781022","short_name":"781022","types":["postal_code"]},{"long_name":"Kamrup Metropolitan","short_name":"Kamrup Metropolitan","types":["administrative_area_level_2","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"781022, India","geometry":{"bounds":{"northeast":{"lat":26.1257268,"lng":91.87214829999999},"southwest":{"lat":26.0783427,"lng":91.788517}},"location":{"lat":26.1067034,"lng":91.8269573},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":26.1257268,"lng":91.87214829999999},"southwest":{"lat":26.0783427,"lng":91.788517}}},"place_id":"ChIJse4vwV9fWjcR2muXfkNA_fg","types":["postal_code"]},{"address_components":[{"long_name":"Kamrup Metropolitan","short_name":"Kamrup Metropolitan","types":["administrative_area_level_2","political"]},{"long_name":"Assam","short_name":"AS","types":["administrative_area_level_1","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"Kamrup Metropolitan, Assam, India","geometry":{"bounds":{"northeast":{"lat":26.2506065,"lng":92.18670519999999},"southwest":{"lat":25.8408737,"lng":91.3577797}},"location":{"lat":26.0794316,"lng":91.63721500000001},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":26.2506065,"lng":92.18670519999999},"southwest":{"lat":25.8408737,"lng":91.3577797}}},"place_id":"ChIJKQvFYfZbWjcRZyoDLrT-9BY","types":["administrative_area_level_2","political"]},{"address_components":[{"long_name":"Assam","short_name":"AS","types":["administrative_area_level_1","political"]},{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"Assam, India","geometry":{"bounds":{"northeast":{"lat":27.968216,"lng":96.0131609},"southwest":{"lat":24.1384989,"lng":89.68563789999999}},"location":{"lat":26.2006043,"lng":92.9375739},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":27.968216,"lng":96.0131609},"southwest":{"lat":24.1384989,"lng":89.68563789999999}}},"place_id":"ChIJYy0xTMkWRTcR-xlnc7tzGtE","types":["administrative_area_level_1","political"]},{"address_components":[{"long_name":"India","short_name":"IN","types":["country","political"]}],"formatted_address":"India","geometry":{"bounds":{"northeast":{"lat":35.5087008,"lng":97.39535869999999},"southwest":{"lat":6.4626999,"lng":68.1097}},"location":{"lat":20.593684,"lng":78.96288},"location_type":"APPROXIMATE","viewport":{"northeast":{"lat":35.5087008,"lng":97.39498069999999},"southwest":{"lat":6.7535159,"lng":68.16288519999999}}},"place_id":"ChIJkbeSa_BfYzARphNChaFPjNc","types":["country","political"]}]
here is the code snippet
from pandas.io.json import json_normalize
import json
import numpy as np
line="JSON string" #for which the code doesn't works
data = json.loads(line)
result = json_normalize(data)
def get_geometry_col(st):
return result['geometry'].apply(json_normalize).apply(lambda df: df[st])
def get_cols(st):
pol = []
for i in result['address_components'].apply(json_normalize):
pol.append(','.join(i.apply(lambda x : x['long_name'] if st in x['types'] else np.nan,1).dropna()))
return pol
result['location_type'] = get_geometry_col('location_type')
result['lat'] = get_geometry_col('location.lat')
result['political'] = get_cols('political')
result['country'] = get_cols('country')
gives error
runfile('C:/Users/Admin1/Desktop/test_json.py', wdir='C:/Users/Admin1/Desktop')
Traceback (most recent call last):
File "<ipython-input-9-a2117950798d>", line 1, in <module>
runfile('C:/Users/Admin1/Desktop/test_json.py', wdir='C:/Users/Admin1/Desktop')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Admin1/Desktop/test_json.py", line 13, in <module>
result = json_normalize(data,'results',['address_components'])
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json.py", line 847, in json_normalize
_recursive_extract(data, record_path, {}, level=0)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json.py", line 833, in _recursive_extract
recs = _pull_field(obj, path[0])
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json.py", line 784, in _pull_field
result = result[spec]
KeyError: 'results'
Any suggestion on where changes can be made so as the code runs.
Thanks.
Domnick.
The second JSON doesn't have a results
property, the records are at the top level of the data. So leave out the record_path
argument to json_normalize()
.
results = json_normalize(data, meta=['address_components'])