我正在寻找一种更为动态的方式来编写下面的语句。你知道吗
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低效。虽然我很感激您的建议,但我知道并且不打算在生产中使用它。只是为了测试。:)
为此使用切片
r[:14]
:常规列表理解:
你可能在找这样的东西。你知道吗
注意,我们使用的是^{} 行工厂,因此我们得到
row.keys()
。你知道吗我还冒昧地
fetchone()
代替fetchall()
。你知道吗相关问题 更多 >
编程相关推荐