# API from SkyScanner for Examples:

url = "<https://skyscanner65.p.rapidapi.com/api/v1/flights/indicative/search>"

payload = { "query": {
		"market": "US",
		"locale": "en-US",
		"currency": "USD",
		"queryLegs": [
			{
				"originPlace": { "queryPlace": { "iata": "BOM" } },
				"destinationPlace": { "queryPlace": { "iata": "DEL" } },
				"anytime": True
			}
		]
	} }
headers = {
	"content-type": "application/json",
	"X-RapidAPI-Key": "81d929c401msh55db1148647344cp1f1e2djsnd3e37a9caf26",
	"X-RapidAPI-Host": "skyscanner65.p.rapidapi.com"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())

#Checking which type of output we have, a dictionary has keys values
type(response.json())

output = response.json()

output.keys()

output['status']

output['content']

output['content'].keys()

results = output['content']['results']

results.keys()

quotes = results['quotes']

# this function takes a dictionary and transform into a pandas dataframe
quotes_data = pd.json_normalize(quotes)

# Clean the column names
quotes_data.columns = [col.split('.')[-1] for col in quotes_data.columns]

list(quotes_data.columns)

# Flatten Dictionary Function

def flatten_dict(dd, separator='_', prefix=''):
    return {f"{prefix}{separator}{k}" if prefix else k: v
            for kk, vv in dd.items()
            for k, v in (flatten_dict(vv, separator, kk).items() if isinstance(vv, dict) else {kk: vv}.items())}

flattened_results = [flatten_dict(result) for result in quotes.values()]

# Convert the flattened dictionary to a dataframe
quote_data = pd.DataFrame.from_records(flattened_results)