I have a Json string from which I'm able to extract few components like formatted_address
,lat
,lng
, but I'm unable to extract feature(values) of other components like intersection, political, country, administrative_area_level_1 , administrative_area_level_2 , administrative_area_level_3 , administrative_area_level_4, administrative_area_level_5, colloquial_area , locality , ward, neighborhood, premise, subpremise etc which is under long_name
I'm expecting datatable like
formatted_address px_val py_val political country administrative_area_level_1 .. ..
Satya Niwas, Kanti Nagar.. 19.1096591 72.8674712 Kanti Nagar,JB Nagar India maharashtra .. ..
82, Bamanpuri, Ajit Nagar.. 19.109749 72.867249 Bamanpuri India maharashtra .. ..
.
.
.
Here is the sample JSON string
{'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 snippet of code
import json
import pandas as pd
line="json_str"
json_st = json.loads(line)
country=[]
political=[]
address_fields = {
'intersection': [],
'political': [],
'country': []
}
for json_str in json_st:
address_fields = {
'intersection': [],
'political': [],
'country': []
}
if isinstance(json_st,dict):
first_address_components = json_st['results']
#format_add = json_st['results'][0]
else:
first_address_components = json_st[0]['address_components']
for item in first_address_components:
for field_key in address_fields.keys():
#address_fields[field_key].append( str(format_add['formatted_address']))
if field_key in item['types']:
address_fields[field_key].append(item['long_name'])
address_fields = {key: ', '.join(values) for key, values in address_fields.items()}
country.append(address_fields['country'])
political.append(address_fields['political'])
It gives error
json_st['results']['address_components']
Traceback (most recent call last):
File "<ipython-input-94-315fa8711f9d>", line 1, in <module>
json_st['results']['address_components']
TypeError: list indices must be integers or slices, not str
I'm getting the first 3 columns of expected O/P but unable to extract other columns. Any suggestion on the same will be helpful
Thanks
Domnick