【发布时间】:2018-07-19 11:28:28
【问题描述】:
问题:
嗨,现在我正在查询 sqlite 并将结果分配给如下变量:
表结构: rowid、名称、某事
cursor.execute("SELECT * FROM my_table WHERE my_condition = 'ExampleForSO'")
found_record = cursor.fetchone()
record_id = found_record[0]
record_name = found_record[1]
record_something = found_record[2]
print(record_name)
但是,很可能有一天我必须在表格中添加一个新列。我们以添加该列为例:
表结构: rowid、年龄、姓名、某事
在那种情况下,如果我们运行相同的代码,name 和 something 将被错误分配,打印出来的不是名字而是年龄,所以我必须手动编辑代码以适应当前指数。但是,我现在正在为一个复杂的 UI 处理超过 100 个字段的表,这样做很烦人。
期望的输出:
我想知道是否有更好的方法通过使用 dicts 或类似的东西来捕获结果:
潜伏者注意:下一段是编造的代码不起作用,不要使用它。
cursor.execute_to(my_dict,
'''SELECT rowid as my_dict["id"],
name as my_dict["name"],
something as my_dict["something"]
FROM my_table WHERE my_condition = "ExampleForSO"''')
print(my_dict['name'])
我可能对这种方法有误,但这与我想要的很接近。这样,如果我不将结果作为索引访问,并且如果添加一个新列,无论它在哪里,输出都是相同的。
实现它的正确方法是什么?还有其他选择吗?
【问题讨论】:
-
“但是,我现在正在处理包含 100 多个字段的复杂 UI 表”=> 你可能想要使用一些轻量级的 ORM(例如 peewee)。
标签: python python-3.x sqlite