Home > Mobile >  Need help translating a nested dictionary into a pandas dataframe
Need help translating a nested dictionary into a pandas dataframe

Time:10-14

Looking into translating the following nested dictionary which is an API pull from Yelp into a pandas dataframe to run visualization on:

Top 50 Pizzerias in Chicago
{'businesses': [{'alias': 'pequods-pizzeria-chicago',
                 'categories': [{'alias': 'pizza', 'title': 'Pizza'}],
                 'coordinates': {'latitude': 41.92187, 'longitude': -87.664486},
                 'display_phone': '(773) 327-1512',
                 'distance': 2158.7084581522413,
                 'id': 'DXwSYgiXqIVNdO9dazel6w',
                 'image_url': 'https://s3-media1.fl.yelpcdn.com/bphoto/8QJUNblfCI0EDhOjuIWJ4A/o.jpg',
                 'is_closed': False,
                 'location': {'address1': '2207 N Clybourn Ave',
                              'address2': '',
                              'address3': '',
                              'city': 'Chicago',
                              'country': 'US',
                              'display_address': ['2207 N Clybourn Ave',
                                                  'Chicago, IL 60614'],
                              'state': 'IL',
                              'zip_code': '60614'},
                 'name': "Pequod's Pizzeria",
                 'phone': ' 17733271512',
                 'price': '$$',
                 'rating': 4.0,
                 'review_count': 6586,
                 'transactions': ['restaurant_reservation', 'delivery'],
                 'url': 'https://www.yelp.com/biz/pequods-pizzeria-chicago?adjust_creative=wt2WY5Ii_urZB8YeHggW2g&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=wt2WY5Ii_urZB8YeHggW2g'},
                {'alias': 'lou-malnatis-pizzeria-chicago',
                 'categories': [{'alias': 'pizza', 'title': 'Pizza'},
                                {'alias': 'italian', 'title': 'Italian'},
                                {'alias': 'sandwiches', 'title': 'Sandwiches'}],
                 'coordinates': {'latitude': 41.890357,
                                 'longitude': -87.633704},
                 'display_phone': '(312) 828-9800',
                 'distance': 4000.9990531720227,
                 'id': '8vFJH_paXsMocmEO_KAa3w',
                 'image_url': 'https://s3-media3.fl.yelpcdn.com/bphoto/9FiL-9Pbytyg6usOE02lYg/o.jpg',
                 'is_closed': False,
                 'location': {'address1': '439 N Wells St',
                              'address2': '',
                              'address3': '',
                              'city': 'Chicago',
                              'country': 'US',
                              'display_address': ['439 N Wells St',
                                                  'Chicago, IL 60654'],
                              'state': 'IL',
                              'zip_code': '60654'},
                 'name': "Lou Malnati's Pizzeria",
                 'phone': ' 13128289800',
                 'price': '$$',
                 'rating': 4.0,
                 'review_count': 6368,
                 'transactions': ['pickup', 'delivery'],
                 'url': 'https://www.yelp.com/biz/lou-malnatis-pizzeria-chicago?adjust_creative=wt2WY5Ii_urZB8YeHggW2g&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_search&utm_source=wt2WY5Ii_urZB8YeHggW2g'},
 
                                                  ....]

I've tried the below and iterations of it but haven't had any luck.

df = pd.DataFrame.from_dict(topresponse)

Im really new to coding so any advice would be helpful

CodePudding user response:

response["businesses"] is a list of records, so:

df = pd.DataFrame.from_records(response["businesses"])
  • Related