I am running a query based off of other ids for the query. The problem i have is that sometimes the query won’t find a result. Instead of having the entire program crash, how can I check to see if the result will be None?
This is the query I have:
sub_report_id = DBSession.query(TSubReport.ixSubReport).filter(and_(TSubReport.ixSection==sectionID[0], TSubReport.ixReport== reportID[0])).one()
When the code gets executed and no results are found, I get a NoResultFound exception
NoResultFound: No row was found for one()
is there a way to just skip the query if there is not going to be a result?
Found the solution on SO(couldn’t find it before) Getting first row from sqlalchemy
Advertisement
Answer
Use first()
function instead of one()
. It will return None if there is no results.
sub_report_id = DBSession.query(TSubReport.ixSubReport).filter(and_(TSubReport.ixSection==sectionID[0], TSubReport.ixReport== reportID[0])).first()
see documentation here