python - “TypeError:'datetime.datetime'和'str'的实例之间不支持'>'”
问题描述
我正在尝试获取要显示的场地列表,然后计算即将举行的节目的数量。我遇到了错误filtered_upcomingshows = [show for show in upcomingshows if show.start_time > current_time]
。该模型将start_time
字段设置为 DateTime,并current_time
设置为 DateTime(除非我误解了它的使用方式?)。我无法弄清楚哪个被读取为字符串。我将如何解决这个问题?
class Show(db.Model):
__tablename__ = 'shows'
id = db.Column(db.Integer, primary_key=True)
artist_id = db.Column(db.Integer, db.ForeignKey('artists.id'), nullable = False)
venue_id = db.Column(db.Integer, db.ForeignKey('venues.id'), nullable = False)
start_time = db.Column(db.DateTime, nullable = False)
def __repr__(self):
return '<Show {} {}>'.format(self.artist_id, self.venue_id)
@app.route('/venues')
def venues():
current_time = datetime.now().strftime('%Y-%m-%d %H:%S:%M')
venue_city_state = ''
data = []
# queries Venue db for all records
venues = Venue.query.all()
for venue in venues:
upcomingshows = venue.shows
filtered_upcomingshows = [show for show in upcomingshows if show.start_time > current_time]
if venue_city_state == venue.city + venue.state:
data[len(data) - 1]["venues"].append({
"id": venue.id,
"name": venue.name,
"num_upcoming_shows": len(filtered_upcomingshows)
})
else:
venue_city_state == venue.city + venue.state
data.append({
"city": venue.city,
"state": venue.state,
"venues": [{
"id": venue.id,
"name": venue.name,
"num_upcoming_shows": len(filtered_upcomingshows)
}]
})
解决方案
问题是(正如解释器所说)它current_time
是一个字符串并且show.start_time
是一个datetime.datetime
实例。要解决此问题,您只需.strftime('%Y-%m-%d %H:%S:%M')
在定义current_time
.
date.strftime(format)
返回一个表示日期的字符串,由显式格式字符串控制。引用小时、分钟或秒的格式代码将看到 0 值。有关格式化指令的完整列表,请参阅
strftime()
行为strptime()
。
参考:https ://docs.python.org/3/library/datetime.html#datetime.date.strftime
推荐阅读
- javascript - sqlite where 子句“AND”和“IN”
- python - 使用索引和掩码数组计算多维数组的平均值
- c - Why is my program not displaying any output?
- html - Is it possible to have an unordered list with bullets inside and hanging indent?
- swift - MapView viewForAnnotation 在圆圈中显示白色针脚(默认)
- html - 自动以 html 格式显示 youtube 的最新 5 个视频
- konvajs - 关闭 Konvajs 警告
- gradle - 无法将发布“mavenJava”发布到存储库“maven”
- php - PHP class_exists() 找不到真正存在的类
- asp.net-mvc - 指定实现时带有接口类的 WebAPI 模型 [ModelBinder]