匿名函数实现switch...case...效果

本人目前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/')
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

你可能感兴趣的:(匿名函数实现switch...case...效果)