Python Cookbook-7.13 生成一个字典将字段名映射为列号
任务
想访问一个从 DBAPI游标对象获得的数据,但你希望能够根据字段名访问列,而不是根据列号。
解决方案
通过列号访问从数据库获得的记录的列是可行的,但可读性不太好,而且健壮性也差,这是因为当数据库的模式发生变化时,列有可能会被重新排序(很少见,但是确实偶有发生)。本节将利用Python DB API的游标对象的 description 属性,创建一个字典来将列名映射为列号,可以通过 cursor_row[field_dict[fieldname]]来获得命名的列的值:
def fields(cursor):"""假设DB API 2.0游标对象已经被执行并返回了 a dictionary that maps each field name to a column index,0 and up."""res