将作为 pyodbc 游标的属性返回的所有字段追加到用户定义的数据类型



我有这样的代码:

classinstance.col1 = queryresult.col1
classinstance.col2 = queryresult.col2
classinstance.col3 = queryresult.col3
classinstance.col4 = queryresult.col4

这会将变量添加到classinstance,并为queryresult列的值分配与变量相同的名称。

我希望使我的代码更加灵活,并且不需要按名称标识列。 为此,我想知道是否有某种方法可以在所有列上进行循环,而不是单独处理每一列。 像这样的东西(这是伪代码而不是实际代码,因为我不确定它实际上应该是什么样子):

for each var in vars(queryresult):
    classinstance.(var.name) = var.value

这可能吗? 它需要什么? 我有什么根本性的误解吗?

我假设以下示例的结果中只有一行(在此处注释的帮助下构建)。这里的关键组件zip(row.cursor_description, row)用于从对象pyodbc.Row获取列名。

# convert row to an object, assuming row variable contains query result
rowdict = { key[0]:value for (key, value) in zip(row.cursor_description, row) }
# loop through keys (equivalent to column names) and set class instance values
# assumes existing instance of class is variable classinstance
for column in rowdict.keys():
    classinstance[column] = rowdict[column]

相关内容

  • 没有找到相关文章

最新更新