python - 动态迭代循环
问题描述
我正在寻找一种更动态的方式来编写以下语句。
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]
为此使用切片:
print(r[:14])
推荐阅读
- ios - `viewDidAppear` 中的 `UIScrollView` `bounds` 与上一个 `viewDidLayoutSubviews` 不同
- local - 未找到 Apparmor aa-genprof /etc/apparmor.d//local/usr.lib.dovecot.anvil
- c# - 如何使用依赖注入正确设置 Azure Functions 日志记录、实时指标和应用洞察
- angular - 防止 Angular 9 组件在路由更改时被破坏?
- r - 在R中的列表列表上分配一个向量
- javascript - 在 knockout.js 中将日期格式从 dd/mm/yyyy 更改为 yyyy-mm-dd
- flutter - 如何在 Flutter 中重用 Stack 小部件的子级
- php - 当我运行命令 npm run watch 时,我不断遇到这个问题。知道该怎么做吗?
- firebase - 在 Future 中等待流:Flutter
- java - WebSecurityConfigurerAdapter 配置重叠权限