iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >详解PyMySQL插入字典类型的数据
  • 434
分享到

详解PyMySQL插入字典类型的数据

PyMySQL字典类型数据PyMySQL插入字典 2022-07-18 16:07:26 434人浏览 薄情痞子
摘要

在我们爬虫或者调api获取数据后,需要将数据存入到数据库中,如果数据是列表嵌套字典格式的话,一般做法是遍历列表,然后用字典生成对应的sql语句再执行插入到表中。本文将介绍一种更加简便的方法来插入字典类型的数据。 我们有如

在我们爬虫或者调api获取数据后,需要将数据存入到数据库中,如果数据是列表嵌套字典格式的话,一般做法是遍历列表,然后用字典生成对应的sql语句再执行插入到表中。本文将介绍一种更加简便的方法来插入字典类型的数据。

我们有如下数据列表,需要将该数据插入到对应的数据表student中(表的字段名和数据列表中字典的键名相同)

student_list = [
    {"name": "Tony", "age": 19, "sex": "male"},
    {"name": "Lisa", "age": 18, "sex": "female"},
    {"name": "Jack", "age": 20, "sex": "male"}
]

使用pyMysql批量插入数据可以用以下方法

cursor.executemany(sql, data_list)

上面的sql是一条包含占位符的插入语句,data_list就是需要插入的数据

可以通过以下方法来生成对应的sql

def generate_sql(data_list):
    data = data_list[0]  # 取出第一条
    cols = ", ".join('`{}`'.fORMat(k) for k in data.keys())  # 字段名拼接
    val_cols = ', '.join('%({})s'.format(k) for k in data.keys())  # 对应值的占位符拼接
    sql = """
    INSERT INTO student(%s) VALUES(%s)
    """ % (cols, val_cols)
    return sql

生成的sql如下:

INSERT INTO student(`name`, `age`, `sex`) VALUES(%(name)s, %(age)s, %(sex)s)

生成sql后就可以使用executemany()方法批量插入数据到数据库中,全部代码如下

import pymysql
MYSQL_CONFIG = {
    'host': 'localhost',  # IP地址
    'port': 3306,  # 端口
    'user': 'myuser',  # 用户名
    'passwd': '111111',  # 密码
    'db': 'myclass',  # 数据库
    'charset': 'utf8',  # 编码
}
def generate_sql(data_list):
    data = data_list[0]
    cols = ", ".join('`{}`'.format(k) for k in data.keys())
    val_cols = ', '.join('%({})s'.format(k) for k in data.keys())
    sql = """
    INSERT INTO student(%s) VALUES(%s)
    """ % (cols, val_cols)
    return sql
def main():
    student_list = [
        {'name': 'Tony', 'age': 19, 'sex': 'male'},
        {'name': 'Lisa', 'age': 18, 'sex': 'female'},
        {'name': 'Jack', 'age': 20, 'sex': 'male'}
    ]
    conn = pymysql.connect(**MYSQL_CONFIG)  # 数据库连接
    cur = conn.cursor()  # 游标对象
    sql = generate_sql(student_list)
    cur.executemany(sql, student_list)
    conn.commit()
    cur.close()
    conn.close()
if __name__ == '__main__':
    main()

执行以上代码,就可以看到数据成功插入到表中

nameagesex
Tony19male
Lisa18female
Jack20male

到此这篇关于PyMySQL插入字典类型的数据的文章就介绍到这了,更多相关PyMySQL字典类型数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: 详解PyMySQL插入字典类型的数据

本文链接: https://www.lsjlt.com/news/33389.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作