I'm creating a Python script to create a HTML document with the message containing HTML code in triple quotes. How would I go about formatting some of the text inside the triple quote?
Solved! Go to Solution.
I figured it out with a simple solution.
I exit the triple quotes with triple quotes then added my variables by using + "{}".format(row[0]) + then re adding triple quotes to continue the string.
mess with single and double quotes and escaping... at least in python 3
a = """ \'hello\' said "the \"parrot\" """
print(a)
 'hello' said "the "parrot" 
a
' \'hello\' said "the "parrot" '
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		but if you want to keep the triple quotes then you have to single quote the triple quotes so that they appear but not affect the escaped quotes…
a = '""" \'hello\' said "the \"parrot\" """'
print(a)
""" 'hello' said "the "parrot" """
a
Out[8]: '""" \'hello\' said "the "parrot" """'simple ehh??? 
 
In the Python script below I'm creating an HTML document with a hyperlink to generate an email. How would I use formatting .format(row[0]) in the body section of the email?
import arcpy, datetime, os
arcpy.env.overwriteOutput = True
points = r"***********" 
today = datetime.date.today() 
dte = today.strftime('%m/%d/%Y') 
dtep = today.strftime('%m%d%Y') 
fields = ['Applicant', 'Date_Final', 'Email', 'Permit_No'] 
arcpy.MakeFeatureLayer_management(points, 'FinalizedApproaches') 
f= open("Finalized_{}.html".format(dtep),"w+")
with arcpy.da.SearchCursor(points, fields, "Date_Final = CURRENT_DATE") as cursor: 
    for row in cursor:
        message = """<!DOCTYPE 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>
<h2>Notification Report</h2>
<table>
  <tr>
    <th>Customer</th>
    <th>Status</th>
    <th>Date</th>
    <th>Email</th>
  </tr>
  <tr>
    <td>Test Name</td>
    <td>Finalized</td>
    <td>08/30/2018</td>
    <td><a href="mailto:test@email.com&subject=Permit Status: Finalized&body={}",%0D%0AThis is to notify you that your approach has been finalized. Please use the link below to view your permit documentation.%0D%0A%0D%0Ahttps://www.arcgis.com">Notify</a></>
  </tr>
</table>
</body>
</html>"""
f.write(message) 
f.close()
print "{} Finalized report generate".format(dte)
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		did you try some of the suggestions for formatting within the triple quote?
What did your code produce
I tested your suggestions and it still just produces {} in the body of the email.
perhaps you will have to google, …. html email python
I don't think it is just the triple quotes
For example
I'm really just looking to have an email composed based on a fields from a search cursor using python but I want to be able to send it manually.
a and b would be inputs from your cursor???
Sorry, but maybe Joe Borgione might have had to do email notification or knows someone that does
 a = "Hey folks..."
b = "\nhttp://www.python.org"
t = "{}\nHow are you?\nHere is the link you wanted:{}".format(a, b)
h = """\
<html>
  <head></head>
  <body>
    <p>{}
       How are you?<br>
       Here is the link you wanted.
       {}
    </p>
  </body>
</html>
""".format(a, b)
print("{}\n{}".format(t, h))
Hey folks...
How are you?
Here is the link you wanted:
http://www.python.org
<html>
  <head></head>
  <body>
    <p>Hey folks...
       How are you?<br>
       Here is the link you wanted.
       
http://www.python.org
    </p>
  </body>
</html>
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		I figured it out with a simple solution.
I exit the triple quotes with triple quotes then added my variables by using + "{}".format(row[0]) + then re adding triple quotes to continue the string.