我有两个代码,一个用于发送电子邮件(works),另一个用于从链接中提取信息(metro.py)。
我要做的是:转到电子邮件代码,导入metro.py和,并在电子邮件正文中发送metro.py结果。如何获得metro.py结果并使用body发送它?
我尝试导入metro,然后在正文文本中设置metro : sent_body = (metro),但不起作用。
import smtplib
import metro
gmail_user = 'email@gmail.com'
gmail_app_password = 'password'
sent_from = gmail_user
sent_to = ['receive@gmail.com']
sent_subject = "Email Teste"
sent_body = ("")
email_text = """\
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(sent_to), sent_subject, sent_body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_app_password)
server.sendmail(sent_from, sent_to, email_text)
server.close()
print('Email sent!')
except Exception as exception:
print("Error: %s!\n\n" % exception)METRO:
import requests
import ast
source = requests.get('http://apps.cptm.sp.gov.br:8080/AppMobileService/api/LinhasMetropolitanas')
content_list=ast.literal_eval(source.content.decode("utf-8"))
for d in content_list:
print(d['Nome'],d['Status'])我希望我可以通过电子邮件发送来自麦德龙的输出。
发布于 2019-04-16 22:32:21
您可以将metro转换为一个函数。
如下所示: import请求import ast
def get_data():
source = requests.get('http://apps.cptm.sp.gov.br:8080/AppMobileService/api/LinhasMetropolitanas')
content_list=ast.literal_eval(source.content.decode("utf-8"))
#for d in content_list:
# print(d['Nome'],d['Status'])
return content_list然后在你的另一个文件中,像这样导入函数from metro import get_data。这应该可以让你的代码正常工作。*假设您的代码文件都在同一目录中*
然后,为了获得电子邮件正文,它应该类似于sent_body = get_data(),或者您可以对数据进行一些处理,因为它只是返回原始结果。
https://stackoverflow.com/questions/55710202
复制相似问题