首页 > 解决方案 > 动态迭代循环

问题描述

我正在寻找一种更动态的方式来编写以下语句。

data = [r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13]] 

r代表我的响应数据进来,我把它枚举到字典中。这行得通,但它太静态了。如果添加或删除数据,则需要调整 API 代码以解决此问题。

处理此问题的直观方法是什么?以下是完整课程的示例,以供参考。

class Pots(Resource):
    def get(self, store):
        print('USAGE: Received a request at POTS for Store ' + store )
        conn = sqlite3.connect('store-db.db')
        cur = conn.cursor()
        cur.execute('SELECT * FROM Pots WHERE StoreNumber like ' + store) 
        res = cur.fetchall()
        if not res:
            print("RESPONSE: No data was found for this request.")
            return('No data was found', 404)
        else:
            for r in res:
                column_names = ["StoreNumber", "ForwardOnFail", "HuntLine","FirePrimary","FireSecondary", "BurglarPrimary", "BurglarSecondary","BurglarTertiary", "DNR", "PassengerElevator", "FreightElevator", "Escalator1", "Escalator2","ShopperTrak"]
                data = [r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13]]         
                datadict = {column_names[itemindex]:item for itemindex, item in enumerate(data)}
                return(datadict, 200)

编辑:请忽略任何 SQL 低效率。虽然我很欣赏这些建议,但我知道并且不打算在生产中使用它。只是为了测试。:)

标签: pythonpython-3.x

解决方案


r[:14]为此使用切片:

print(r[:14])

推荐阅读