为了账号安全,请及时绑定邮箱和手机立即绑定

Python一次性传入多个参数怎样传?

Python一次性传入多个参数怎样传?

John_Skeet 2017-05-04 19:10:28
def insert_sql(*args, **kw):     for k in kw:         SQL_INSERT = "insert into nostray(%s) values('%s')" % (k, kw[k])     return SQL_INSERT sql = insert_sql(userid="ka")比如传入userid=“a”到里面就是insert into nostray(userid) values("a")但是传入userid="a", username="b"就不是 insert into nostray(userid, username) values("a", "b")这样的话怎么写?谢谢
查看完整描述

1 回答

?
ruibin

TA贡献358条经验 获得超213个赞

# -*- coding: UTF-8 -*-
def insert_sql(**kw):
   keys = []
   values = []
   for k in kw:
       keys.append(k)
       values.append(kw[k])
   SQL_INSERT = "insert into nostray%s values%s" % (tuple(keys),tuple(values))
   return SQL_INSERT
   # return SQL_INSERT


sql = insert_sql(userid="a", username="b", age='20')
print sql

查看完整回答
反对 回复 2017-05-05
  • John_Skeet
    John_Skeet
    sql语句中,colum名不能带引号的啊,我找到解决办法了 def insert_sql(**kw): key = ','.join(kw.keys()) value = tuple(kw.values()) SQL_INSERT = "insert into nostray({0}) values{1}".format(key, value) return SQL_INSERT sql = insert_sql(userid='kp', username='gg')
  • ruibin
    ruibin
    你这样写有问题。我刚开始就这样想的,不过你这个依旧有引号,引号在最外面。例如','.[1, 2, 3]返回的是一个'1,2,3'这样的字符串,你括起来,就发现问题了。你可以试试
  • ruibin
    ruibin
    没看见这个nostray({0}) ,不好意思
  • 1 回答
  • 0 关注
  • 5695 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信