本人目前Python学习中……
今天遇到的问题是:
如何把数据库中查询出的int结果转换成对应的可理解的string
(有字典,1对1对应的)
想到的办法是在Python中构建类似switch case的语句,用到了匿名函数。这里有个参数的多余的,没想好怎么处理,暂时保留。
def int2str(i, x): # 内部函数,改变【状态】的表现形式
return {
0: lambda x: '未出发',
1: lambda x: '已出发未到访',
2: lambda x: '已到访未交定',
3: lambda x: '已交定未首付',
4: lambda x: '已首付已成交'}[i](x)
完整代码如下,上述的函数作为一个内部函数使用
@app.route('/b/book/<int:bookid>')
def get_buyer_booking_status_by_bookid(bookid):
sql1 = 'SELECT status '
sql2 = 'FROM bookings WHERE id = %d' % bookid
sql3 = ' '
sql4 = ' LIMIT 1'
sql = '%s %s %s %s;' % (sql1, sql2, sql3, sql4)
cur = g.db.execute(sql)
def int2str(i, x): # 内部函数,改变【状态】的表现形式
return {
0: lambda x: '未出发',
1: lambda x: '已出发未到访',
2: lambda x: '已到访未交定',
3: lambda x: '已交定未首付',
4: lambda x: '已首付已成交'}[i](x)
dict_status = {'status': int2str(cur.fetchone()[0]*1,0)}
return jsonify(dict_status)
以上测试通过。
via Python/Flask/Sqlite3
网友评论