def gen_sql(table_name, data):  

  """
  :param table_name: 表名称
  :param data: 字典对象 key为字段(要与数据库字段一样), value为插入值
  :return: 拼接好的sql语句
  """

  fields = list()
  values = list()
  for k, v in data.items():
    if v:  # 没有值, 就不插入
      fields.append(k)
      values.append(v)
   fields_count = len(fields)
   f = "(" + "{}," * (fields_count - 1) + "{})"
   v = "(" + "'{}'," * (fields_count - 1) + "'{}')"
   sql = "insert into {} " + f + " VALUES " + v
   sql = sql.format(table_name, *fields, *values)
  return sql

python 字典 拼接SQL语句的更多相关文章

  1. StringBuilder 拼接sql语句比较快

    StringBuilder 拼接sql语句比较快StringBuilder strBuilder = new StringBuilder();strSql += "insert into t ...

  2. ASP.NET实现列表页连接查询 拼接sql语句 绑定grivdView

    ASP.NET实现列表页连接查询 拼接sql语句 如图效果: 基本需求:1.当页面第一次加载的时候默认查询一个月时间(或者说是登陆者所属权限的所有数据)的数据绑定到gridView 2.添加查询条件时 ...

  3. 查询拼接SQL语句,多条件模糊查询

    多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...

  4. java动态拼接sql语句并且执行时给sql语句的参数赋值

    问题 在这里举一个例子,比如我要做一个多条件模糊查询,用户输入的时候有可能输入一个条件,也有可能输入两个条件,这时执行查询的sql语句就不确定了,但可以用动态拼接sql语句来解决这个问题. 解决方法 ...

  5. Python MySQLdb 执行sql语句时的参数传递

    使用MySQLdb连接数据库执行sql语句时,有以下几种传递参数的方法. 1.不传递参数 conn = MySQLdb.connect(user="root",passwd=&qu ...

  6. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  7. 使用表达式避免拼接SQL语句

    在SQL语句编写过程中,无论在存储过程中还是在程序中,有时为了使语句兼容全部情况与某字段的特殊情况,不得不拼接SQL字串 如下表 商品ID 类别ID 1 1 2 1 3 2 4 3 5 3 如果我们要 ...

  8. java反射获取注解并拼接sql语句

    先建两个注解 分别为 Table 和 Column package com.hk.test; import java.lang.annotation.ElementType; import java. ...

  9. 多条件搜索拼接Sql语句

    1. 如下实例:     1.1 如下图所示:[通过用户输入的数据拼接Sql搜索语句]                  1.2         private void button2_Click( ...

随机推荐

  1. js中各种弹窗

    ** * JS提示跳转 * @param  $tip  弹窗口提示信息(为空没有提示) * @param  $type 设置类型 close = 关闭 ,back=返回 ,refresh=提示重载,j ...

  2. Android开发 静态static类与static方法持有Context是否导致内存泄露的疑问

    简述 在Android开发的过程中,难免会使用单例模式或者静态方法工具类.我们会让它们持有一些外部的Context或者View一般有以下几种情况: 单例模式,类的全局变量持有Context 或 Vie ...

  3. 在IDEA中设置命令行参数

  4. Python校验用户名是否合法示例

    #校验用户名是否合法例子: #输入账号密码 #input #如果账号存在提示已经注册,如果不存在的,就可以注册 all_users [] #不能为空 #strip() #用户名长度6-12之间 #le ...

  5. linux中ip命令使用介绍

    ifconfig是CentOS 5.6系统中经典的配置网络的命令,但是到了CentOS 7的时候,命令就变成了ip了,我们也要学习,我们也要与时俱进.跟随高手一起学习 查看链路 ip link sho ...

  6. Python 的赋值坑 , a=b=c=1???

    原文地址:https://www.v2ex.com/amp/t/443384 Python 的赋值坑 , a=b=c=1??? 今天回答了一个主题, 一不小心进入了一个坑, 耗费了好多时间终于弄懂了我 ...

  7. JS常见兼容性问题

    兼容性问题:函数(方法)兼容 描述:部分W3C指定的函数,有部分老的浏览器不支持 解决: 条件判断,如果有,则使用,添加原型方法,例如 String 的 trim 方法 if(!String.prot ...

  8. redis 安装启动

    1.解压 tar -zxvf redis文件 2. make 3. cp redis-server redis-cli /usr/local/redis cp redis.conf /usr/loca ...

  9. 剑指offer——二叉树的镜像

    题目:操作给定的二叉树,将其变换为源二叉树的镜像. 思路:前序(根左右的顺序)遍历一棵树,在存储的时候将其左右树进行交换,最后按照处理后的树还原,即得到其镜像. /** public class Tr ...

  10. pyhon的yileld的一点笔记

    yield感觉很神秘,感觉也不好理解,学习pyhon最后终归是要学习这个东西,研究了一段时间,把自己的笔记写下来 说简单点就是遇到yield就停止往下执行代码,也包括不执行yield这条语句,然后返回 ...