首页 > 解决方案 > 使用列表中的变量或项目作为代码的一部分(而不是字符串或变量)或变量本身?

问题描述

我有一个字符串列表。

list=['cretd_dt','rcvd_dt']

实际代码是:

query = table.update().values(
        cretd_dt = Join_All_Dates.iloc[index]['cretd_dt'],
        rcvd_dt= Join_All_Dates.iloc[index]['rcvd_dt'])

我希望从列表内部使用cretd_dt=and rcvd_dt=。也就是说,如果列表有 a,b,那么在查询中它必须是 。values( a=join[index]['a'])等等

list=['a','b']
query = table.update().values(
            a = Join_All_Dates.iloc[index]['a'],
            b= Join_All_Dates.iloc[index]['b'])

标签: pythonpython-3.xvariablessqlalchemy

解决方案


构建一个dict并将其解包为参数values()

# Don't shadow builtins such as list
the_list = ['a', 'b']
query = table.update().values(**{k: Join_All_Dates.iloc[index][k] for k in the_list})

虽然您不需要解包,因为也直接Update.values()接受 adict作为位置参数。


推荐阅读