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

2022-12-08 0 514

在我们爬虫或者调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 pymysqlMYSQL_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 sqldef 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()

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

nameagesexTony19maleLisa18femaleJack20male

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 数据库其它 详解PyMySQL插入字典类型的数据 https://www.u-9.cn/sql/sqlqt/6814.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

注册会员,众多资源免费下载