У меня есть сценарий, который отправляет мне ссылки на меня.Функция лямбда не печатает значения вместо печати значения объекта
Проблема заключается в том, что ссылки не быть включены, вместо этого я получаю:
<function <lambda> at 0x7f75b5fb4a60>
Мой сценарий выглядит следующим образом:
from bs4 import BeautifulSoup
import re
import requests
ex_webdev_js_by_city = [
'http://boston.website.org/search/web',
]
ex_web_j_keywords = [['one'],['coool', 'person']]
ex_web_j_keywords = sum(ex_web_j_keywords, [])
ex_js = []
for webdev_j_for_a_city in ex_webdev_js_by_city:
webdev_j = requests.get(webdev_j_for_a_city)
soup = BeautifulSoup(webdev_j.text, "lxml")
for j_keyword in ex_web_j_keywords:
for a in soup.find_all('a', class_="result-title hdrlnk", text=re.compile(j_keyword,re.IGNORECASE)):
#print(a.get('href'))
ex_js.append(a.get('href'))
if ex_js:
#email them to myself!
import smtplib, socket
TO = '[email protected]'
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
TEXT = lambda: print(('Latest js from site:\n\n{}'*len(ex_js)).format(*ex_js))
#Gmail Sign In
gmail_sender = 'myemail'
gmail_passwd = 'mypass'
server.login(gmail_sender, gmail_passwd)
msg = str(TEXT)
server.sendmail(gmail_sender, gmail_sender, msg)
print('Sent you some links!')
server.quit()
except socket.error as e:
print ('error sending mail, error was {}'.format(e))
Ошибка встречающийся на этой линии (я считаю):
lambda: print(('Latest js from site:\n\n{}'*len(ex_js)).format(*ex_js))
Похоже, что он печатает object details
в письме ко мне, а не value
.
Таким образом, что я, возможно, делаю неправильно здесь?
Прежде всего, значение 'None' так как вы" return "утверждение' print', а во-вторых, почему вы используете лямбда? –
Функция 'lambda' ничего не делает, потому что она никогда не вызывается. –