@Li, Gavin As mentioned in the thread : https://stackoverflow.com/questions/65196733/azure-function-list-operation-show-index-out-of-range/65203511, did you try to declare the list variable as global? Does that help in this case?
Azure Function list operation show index out of range
I'm writing some script on Azure function with python, which want to handle the csv file which was upload to blob storage.
The coding I tested pass in local, but it got error on Azure function.
Result: Failure Exception: IndexError: list index out of range Stack: File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/dispatcher.py", line 355, in _handle__invocation_request call_result = await self._loop.run_in_executor( File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/dispatcher.py", line 542, in __run_sync_func return func(**params) File "/home/site/wwwroot/csvhandler/init.py", line 28, in main text1=list1
Not quite sure why it said list index out of range Stack, the list index should begin from 0..
import logging import azure.functions as func import pandas as pd import numpy as np list1= def main(inputblob: func.InputStream, outputblob: func.Out[str]) -> None: logging.info('Python Queue trigger function processed %s', inputblob.name) str1 = inputblob.read().decode('utf-8-sig') str1 = str1.split('\\r\\n') #split the string in list, str1="ab,cd,ef\r\n12,34,56\r\nff,gg,ee\r\n" str1 = str1[0:-1] for i in range(0,len(str1)): #split the list which can be written into pandas DataFrame str2=str1[i].split(',') list1.append(str2) print(str1) text1=list1 #verify if the element correct text2=list1 text3=list1 text4=list1 df = pd.DataFrame(list1[1:], columns=list1) #create the dataframe outstr=df.to_csv(index=False) #transfer the output to string outputblob.set(outstr) #output the string in the blob
In the other hand, would anyone suggest if we can explore the edited dataframe as csv to blob storage? I can't find much info here.
@Li, Gavin Thank you for the question. We will review and update accordingly!
Sign in to comment
Sort by: Most helpful
The IndexError is raised when attempting to retrieve an index from a sequence (e.g. list, tuple), and the index isn’t found in the sequence. The Python documentation defines when this exception is raised:
Raised when a sequence subscript is out of range. (Source)
Here’s an Python Split() example that raises the IndexError:
data = "one%two%three%four%five" numbers = data.split('%')
The list numbers has 5 elements, and the indexing starts with 0, so, the last element will have index 4. If you try to subscript with an index higher than 4, the Python Interpreter will raise an IndexError since there is no element at such index.