匿名函数实现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/<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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容