Python Forum
if conditional not firing - unable to understand why
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
if conditional not firing - unable to understand why
#1
Hi Folks -
I'm running into a weird issue where when I add two if conditionals, the portion of code following the second if conditional when true does not execute.

For instance, this code works fine:

def sendemail(email, data):
    ret = ''
    try:
        me = '[email protected]'  # You can update the helpdesk mail address.
        my_password = 'pass'  # Mailbox Password
        you = email
        msg = MIMEMultipart('alternative')
        msg['Subject'] = 'WARNING: Unassigned Request Type(s) and/or Catagory(ies) and/or Subcategory(ies)  etc : ' + time.strftime('%c')
        msg['From'] = me
        msg['To'] = email

        html = data
        part2 = MIMEText(html, 'html')

        msg.attach(part2)

        s = smtplib.SMTP_SSL('server')  # Mail Server Host name
        s.login(me, my_password)

        s.sendmail(me, you, msg.as_string())
        s.quit()
        ret = 'success'
    except smtplib.SMTPException as err:
        print ('Unable to Send emails : ', err)
        ret = 'failure'
    return ret


reportJson = str(sys.argv[1])
json_data = open(reportJson).read()
data = json.loads(json_data)
counter = 0
techEmail = ''
message = \
    """<html><html><head><style>table {font-family: arial, sans-serif;border-collapse: collapse;width: 100%;}td, th {border: 1px solid #dddddd;text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}</style></head><body><table><tr><th>RequestID</th><th>Site</th><th>RequestType</th><th>Status</th><th>Requester</th><th>Subject</th></tr>"""
length = len(data)

for dObj in data:
    requestID = dObj.get('requestid')
    site = dObj.get('site')
    RequestType = dObj.get('RequestType')
    status = dObj.get('status')
    requester = dObj.get('requester')
    subject = dObj.get('subject')
    Violated = dObj.get('Violated')
    ApproachingSLA = dObj.get('ApproachingSLA')
    TechnicianUpdated = dObj.get('TechnicianUpdated')
    email = dObj.get('email')

    if RequestType is None:
        RequestType = 'Not Assigned'
            if counter == 0:
                techEmail = email
            counter += 1
            if techEmail == email:
                message += \
                    """<tr><td>""" \
                    + requestID + """</td><td>""" + site + """</td><td>""" + RequestType + """</td><td>""" \
                    + status + """</td><td>""" + requester + """</td><td>""" \
                    + subject + """</td></tr>"""
                if counter == length:
                    message += '</table></body></html>'
                    r = sendemail(techEmail, message)
                    print(techEmail)
            else:
                message += '</table></body></html>'
                r = sendemail(techEmail, message)
                print(techEmail)
                techEmail = email
                message = \
                    """<html><head><style>table {font-family: arial, sans-serif;border-collapse: collapse;width: 100%;}td, th {border: 1px solid #dddddd;text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}</style></head><body><table><tr><th>RequestID</th><th>Site</th><th>RequestType</th><th>Status</th><th>Requester</th><th>Subject</th></tr><tr><td>""" \
                    + requestID + """</td><td>""" + site + """</td><td>""" + RequestType + """</td><td>""" \
                    + status + """</td><td>""" + requester + """</td><td>""" \
                    + subject + """</td></tr>"""
                if counter == length:
                    message = \
                        """<html><head><style>table {font-family: arial, sans-serif;border-collapse: collapse;width: 100%;}td, th {border: 1px solid #dddddd;text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}</style></head><body><table><tr><th>RequestID</th><th>Site</th><th>RequestType</th><th>Status</th><th>Requester</th><th>Subject</th></tr><tr><td>""" \
                        + requestID + """</td><td>""" + site + """</td><td>""" + RequestType + """</td><td>""" \
                        + status + """</td><td>""" + requester + """</td><td>""" \
                        + subject + """</td></tr></table></body></html>"""
                    r = sendemail(techEmail, message)
                    print(techEmail)

if(r=="success"):
	print("Reports sent successfully to the respective techs")
else:
	print("Unable to send reports")
However when I add (2) if conditionals to the beginning of the loop, even though the second if conditional is true, it doesn't continue to execute.

In the interest of space, I've only copied int he portion where I added the if conditionals (Violated & ApproachingSLA).

    if RequestType is None:
        RequestType = 'Not Assigned'
    if Violated == 'No':
        if ApproachingSLA == 'Yes':
            if counter == 0:
                techEmail = email
            counter += 1
            if techEmail == email:
Any idea why? Thanks!
Reply


Messages In This Thread
if conditional not firing - unable to understand why - by simms7400 - Oct-19-2018, 06:29 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Unable to understand the meaning of the line of code. jahuja73 0 345 Jan-23-2024, 05:09 AM
Last Post: jahuja73
  Unable to understand how given code takes a fixed input value, without inputting. jahuja73 4 2,781 Jan-28-2021, 05:22 PM
Last Post: snippsat
  .Set - Unable to understand the statement ateestructural 5 2,445 Aug-02-2020, 08:24 PM
Last Post: deanhystad
  Unable to understand a statement in an existing code ateestructural 1 2,264 Aug-01-2020, 09:38 PM
Last Post: deanhystad
  Help with calling the function as the code keep firing chris0147 8 4,038 May-04-2018, 09:00 AM
Last Post: ThiefOfTime

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020