Я знаю, что это sloopy, я новичок, но есть лучший способ сделать это, я чувствую, что есть, но я не знаю. То, что я пытаюсь сделать это, отправить по электронной почте оповещения каждый раз, когда изменение балла, что выше, чем 9.Есть ли лучший способ написать этот скрипт в python
Вот код:
#!/usr/bin/env python
"""
Script to send any pending alerts via email
"""
import sys
from pymongo import MongoClient
from datetime import datetime
#### begin
def send_email():
print "Begin GAMER-ALERT-SEND-EMAILS %s " % (datetime.now()).
if 'score_by_cat' >=9:
send_email()
if 'score_by_cat' >=9:
print("Send Email")
else:
print('Nothing")
print "Begin GAMER-ALERT-SEND-EMAILS %s " % (datetime.now())
client = MongoClient('mongodb://localhost:28057/')
db = client.factor
email_rcpt_list = ['[email protected]']
['[email protected]']
#process the alert.. if it is high enough risk and the makes sense (not a security control etc)
for alert in db.risk_alerts.find({"$and" : [{'sent': False}]}):
if float(alert['metric'])>=9 and alert['category']!='security control':
#Call email send here
for email in email_rcpt_list:
print 'Call email and pass in the email address from email_rcpt_list'
print ' Sample alert: Vendor: %s Has an new item %s on %s of elevated risk %s in the category %s link: https://Gamer-dev.momo.net/profile/view/detail/%s' % (alert['vendor_name'],alert['key'],alert['source'],alert['metric'],alert['category'],alert['profile_id'])
#mark as sent always
db.risk_alerts.update_one({"_id":alert['_id']},{"$set": {"sent":True}})
print "End GAMER-ALERT-SEND-EMAILS %s" % (datetime.now())
Вы уверены, что этот скрипт работает даже на первом месте? 'if 'score_by_cat'> = 9' без двоеточия': '? –
Да, похоже, здесь проблемы с форматированием. И в python форматирование важно, поэтому нам нужно правильно его отформатировать. –
Хорошо, извините, что я отредактирую его – Jon