In [117]:
import numpy as np
import pandas as pd
import requests
import json
In [118]:
df=pd.read_csv('Assets/pesto_ids', names=['recipe_id'])
In [119]:
df.head(2)
Out[119]:
In [120]:
key_id= '_app_id=79663a75&_app_key=02b233108f476f3110e0f65437c4d6dd'
toy_id = 'The-Best-Homemade-Pesto-1572415'
url='http://api.yummly.com/v1/api/recipe/'
response = requests.get(url + toy_id + '?' + key_id)
In [121]:
response.status_code
Out[121]:
In [122]:
# retrieve all recipe details for all pesto recipes
def get_recipe(i):
response = requests.get(url + i + '?' + key_id)
return response.json()
recipes=[]
for i in df['recipe_id']:
recipes.append(get_recipe(i))
In [123]:
len(recipes)
Out[123]:
In [165]:
pprint(recipes[2].keys())
In [294]:
#for each recipe get the id create a new dictionary of selected attributes and append into a list
recipe_details=[]
for recipe in recipes:
_dict={}
#import pdb; pdb.set_trace()
_dict['id']=recipe['id']
_dict['ingredientCount']= len(recipe['ingredientLines'])
_dict['numberOfServings']= recipe['numberOfServings']
if 'prepTimeInSeconds' in recipe.keys():
_dict['prepTimeInSeconds']= recipe['prepTimeInSeconds']
else:
_dict['prepTimeInSeconds']= None
if 'cookTimeInSeconds' in recipe.keys():
_dict['cookTimeInSeconds']= recipe['cookTimeInSeconds']
else:
_dict['cookTimeInSeconds']= None
_dict['totalTimeInSeconds']=recipe['totalTimeInSeconds']
recipe_details.append(_dict)
In [297]:
# create a dataframe from list
details=pd.DataFrame(recipe_details)
#create list of columns
cols = list(details)
#arrange column positions
cols=['id','numberOfServings','ingredientCount','prepTimeInSeconds','cookTimeInSeconds','totalTimeInSeconds']
details=details.ix[:,cols]
In [296]:
details
Out[296]:
In [ ]:
# Add data to dicts for courses, flavors and cuisines
courses_dict[item.get('id')] = item['attributes'].get('course')
flavors_dict[item.get('id')] = item.get('flavors')
cuisine_dict[item.get('id')] = item['attributes'].get('cuisine')
ingredients_dict[item.get('id')] = [x.lower() for x in item.get('ingredients')]