pymysql 插入更新字典类型数据

import pymysql

MYSQL_CONFIG = {
    'host': 'localhost',  # IP地址
    'port': 3306,  # 端口
    'user': 'root',  # 用户名
    'passwd': 'mysql',  # 密码
    'db': 'test03',  # 数据库
    'charset': 'utf8',  # 编码
}


def generate_sql(tb, key_list):
    cols = ", ".join('`{}`'.format(k) for k in key_list)
    val_cols = ', '.join('%({})s'.format(k) for k in key_list)
    sql = """
    INSERT INTO %s(%s) VALUES(%s)
    """ % (tb, cols, val_cols)
    return sql


def generate_sql2(tb, key_list, conditions=None):
    cols = ", ".join('`{}`=%({})s'.format(k, k) for k in key_list)
    print(cols)
    if not conditions:
        conditions = 'where id=%(id)s'
    sql = """
    update %s set %s %s
    """ % (tb, cols, conditions)
    return sql


def main():
    student_list1 = [
        {'name': 'yyy', 'age': 18, 'sex': 'female'},
        {'name': 'zzz', 'sex': 'male', 'age': None}
    ]
    student_list = [
        {'name': 'lkjh', 'age': 9, 'sex': '', 'id': 19},

    ]

    conn = pymysql.connect(**MYSQL_CONFIG)  # 数据库连接
    cur = conn.cursor()  # 游标对象

    sql = generate_sql2('student', ['name', 'sex', 'age'])
    sql2 = generate_sql('student', ['name', 'sex', 'age'])
    print(sql)
    cur.executemany(sql, student_list)
    # cur.executemany(sql2, student_list1)
    conn.commit()

    cur.close()
    conn.close()


if __name__ == '__main__':
    main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值