Skip to main content
 首页 » 编程设计

python之迭代函数参数并在 python 中保留排序顺序

2025年05月04日10qlqwjy

我需要在 python 中调用一个存储过程。 包装函数接受 n 个参数。 根据参数列表,我需要引用或取消引用参数。我还需要发送一个空参数。

如何遍历函数参数并构建 SQL 字符串?

例如。存储过程调用如下所示 - SP_TEST('chrA',intB,chrC)

def execSp(a,b,c,d): 
    <iterate through params and build param list> 
    #If the parameter c is null the SQL should be built as below 
    SQL="exec SP_TEST('a',b,Null)"; 

我尝试使用 locals() 但是它返回一个无序列表

我是 python 新手,所以任何线索都会有很大帮助。

请您参考如下方法:

以下内容正是您想要的。它首先将列表 AV 初始化为全 NULL,然后迭代提供的参数数量,并适本地替换它们以形成您想要的查询字符串。 SQL = 字符串仅将引号添加到第一个参数。我是否正确理解了您的意图?

def execSp(*args): 
  AV = [] 
  SQL = "exec SP_TEST("; 
  for ii in range(0,4) : 
    AV.append("NULL"); 
  ii = 0; 
 
  for a in args: 
    AV[ii] = str(a); 
    ii+=1; 
 
  SQL = SQL + "\'" + AV[0] + "\'," + AV[1] + "," + AV[2] + "," + AV[3] + ")"; 
  print SQL 
 
execSp("hello", 1, 2, 3); 
execSp("hi", 2, 3); 

当我运行这个时,我得到

exec SP_TEST('hello',1,2,3) 
exec SP_TEST('hi',2,3,NULL)