I am not a python geek but have tried to solve this problem using information from several answers to similar questions but none seem to really work in my case. Here it is:
I am calling a function from a python script: Here is the function:
def getsom(X):
    #some codes
    try:
        st = get data from site 1 using X
    except:
        print "not available from site 1, getting from site 2"
        st = get data from site 2 using X
    #some codes that depend on st
I am calling this from a python script as such:
#some codes
for yr in range(min_yr,max_yr+1):
    day=1
    while day<max_day:
        st1 = getsom(X)
        #some code that depends on st1
        day+=1
This works fine when data is available on either site 1 or 2 for a particular day, but breaks down when it is unavailable on both sites for another day.
I want to be able to check for the next day if data is unavailable for a particular day for both sites. I have tried different configurations of try and except with no success and would appreciate any help on the most efficient way to do this.
Thanks!
***Edits Final version that worked:
in the function part:
def getsom(X):
    #some codes
    try:
        st = get data from site 1 using X
    except:
        print "not available from site 1, getting from site 2"
        st = get data from site 2 using X
        try:
           st = get data from site 2 using X
        except:
           print "data not available from sites 1 and 2"
           st=None
    if st is not None:
        #some codes that depend on st
In order to iterate to the next day on the script side, I had to handle the none case from the function with another try/except block:
#some codes
for yr in range(min_yr,max_yr+1):
    day=1
    while day<max_day:
   try:
       st=getsom(X)
   except:
       st=None
    if st is not None:
       #some codes that depend
 
     
     
    