Я использую приложение Flask/SqlAlchemy с API календаря Google. По сути, я создаю базу данных событий. Вот класс урезанную сниппет:Сравнение даты на Python вызывает неожиданную ошибку
# Flask. We just need the basic stuff in this common moduel
from flask import Flask
# flask SQLAlchemy
from flask.ext.sqlalchemy import SQLAlchemy
# Sort
from sqlalchemy import desc,asc,and_
# Datetime
from datetime import datetime, date
class FlyingEvent(db.Model):
# Event Data
event_id = db.Column(db.Text, primary_key=True)
updated_datetime = db.Column(db.DateTime)
start_date = db.Column(db.DateTime)
end_date = db.Column(db.DateTime)
status = db.Column(db.Text)
creator_email = db.Column(db.Text)
summary = db.Column(db.Text)
description = db.Column(db.Text)
# Flying-specific entries
flying = db.Column(db.Boolean)
tach_start = db.Column(db.Float)
tach_end = db.Column(db.Float)
def extract_hours():
def get_digits(line):
if re.compare('[\d\.]+', line):
return line
else:
return None
try:
right_now=date.today()
if self.flying and self.end_date.date() < right_now:
lines = self.description.split('\n')
self.tach_start = get_digits(lines[0])
self.tach_end = get_digits(lines[1])
except Exception as e:
raise Exception('%r, Could not parse tach %r %r' % (e, self,
right_now))
Это вызывает исключение (я ререйз с предст объекта):
Exception: AttributeError("'module' object has no attribute 'compare'",), Could not parse tach { "event_id": u'go8bl9i615f7e7qljuoun9bqgk', "update_datetime": datetime.datetime(2013, 4, 12, 23, 58, 54, 371000), "start_date": datetime.datetime(2013, 4, 4, 0, 0), "end_date": datetime.datetime(2013, 4, 5, 0, 0), "status": u'confirmed', "creator_email": u'[email protected]', "summary": u'jordan 10.6 to 10.9', "description": u'1010.7\n1010.9', "flying": True, "tach_start": 1010.7, "tach_end": 1010.9} datetime.date(2013, 4, 14)
Мне кажется, что self.end_date является объектом DateTime (который я беру .date()), а right_now - datetime.date().
Что мне не хватает?
Пожалуйста, удалите свой собственный обработчик исключений и показать нам полный отслеживающий первоначального исключения. –