Skip to main content

Python list index out of range in for loop

With the aviationstack API, I try to get info about every flight departing from Marseille (France) airport.

I use the first steps to determine how many pages I have to iterate, as the API returns the total number of results and documentation says the default response has a limit of 100 results, then I build URL's according to the latter result.

Though the code below could be simplified, it gives promising results, however at the last step, I need to provide counts at the line flight_data = response.get("data") in order to get every item of each offset.

But it returns IndexError: list index out of range. I guess because the last offset contains less than 100 items.

import requests
import json
import pandas as pd

from pprint import pprint

airport = 'LFML' # ICAO code for Marseille Provence airport, France
KEY = XXX

urllst = []
responselist = []
countlst = []
data = []

# determine how many results we get
urlroot = f'http://api.aviationstack.com/v1/flights?access_key={KEY}&dep_icao={airport}'
r = requests.get(urlroot)
resp = r.json()
total_results = resp.get("pagination").get("total")
pprint(f'there are {total_results} results in total')

# the total number of results gives us the offset number
offsetnumber = round(total_results, -2)
pprint(f'offset number for {airport} is then {offsetnumber}')

# build URL's according to the offset numbers we obtained
for i in range(0, offsetnumber + 100, 100):
  urls = 'http://api.aviationstack.com/v1/flights?access_key='+KEY+'&limit=100&offset='+str(i)+'&dep_icao='+airport
  urllst.append(urls)

# call the API and store the responses in a list
for url in urllst:
  req = requests.get(url)
  responses = req.json()
  responselist.append(responses)

# get the count of results by offset
for response in responselist:
  counts = response.get("pagination").get("count")
  offset = response.get("pagination").get("offset")
  pprint(f'there are {counts} results in offset {offset}')
  countlst.append(counts)
  
  flight_data = response.get("data")[counts`]
  flight = flight_data.get('flight').get('icao')
  #print(f"{flight}")
  #print(flight)
  data.append((flight))
  cols=['flights']

result = pd.DataFrame(data, columns=cols)
result


source https://stackoverflow.com/questions/74909351/python-list-index-out-of-range-in-for-loop

Comments

Popular posts from this blog

Prop `className` did not match in next js app

I have written a sample code ( Github Link here ). this is a simple next js app, but giving me error when I refresh the page. This seems to be the common problem and I tried the fix provided in the internet but does not seem to fix my issue. The error is Warning: Prop className did not match. Server: "MuiBox-root MuiBox-root-1" Client: "MuiBox-root MuiBox-root-2". Did changes for _document.js, modified _app.js as mentioned in official website and solutions in stackoverflow. but nothing seems to work. Could someone take a look and help me whats wrong with the code? Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console