Python中字典数据存入mysql数据库

需求:将Python字典类型的数据存储在mysql数据库中

思路分析:

  • 数据库中表的字段设计成“键”,目的是方便SQL插入语句的构造
  • 定义函数构建插入的SQL语句
  • pymysql连接数据库执行SQL语句插入
# 根据字典数据和插入表信息创建插入SQl语句
def insert_sql(res, table, uid):
    # 列的字段
    keys = ', '.join(res.keys())
    # 行字段
    values = list(res.values())
    values = str(values).strip('[]')
    sql = 'INSERT INTO {table}(主键, {keys}) VALUES ({uid},{values});'.format(uid=uid,table=table, keys=keys, values=values)
    return sql

 插入SQL语句的构成:

insert into table_name(uid, name, sex) values (1, '张三', '男');

问题1:如何优雅的构建插入SQL语句字段和值

前面这一段:uid, name, sex 这个可以处理成一个字符串格式,就是将字典中的所有键进行组合形成类似结构的字符串

# 列的字段
keys = ', '.join(res.keys())
# 执行完字符串格式: uid, name, sex

后面values那个字段涉及SQL语法问题:中文需要添加引号处理。如果写成如下

values =','.join(res.values)   结果是:1,张三,男 ;没有引号后续会报错

 这里的处理思路是将所有的values值转化成列表,再转化成字符串再去除二边的 [ ]

# 行字段
values = list(res.values())
values = str(values).strip('[]')

[ 1, '张三', '男']  ---> 1, '张三', '男'


还有一种方法参考如下博客:Python优雅的将字典数据存入数据库中_亥虫的博客-CSDN博客_python 字典插入数据库

# 列的字段
keys = ', '.join(data.keys())
# 行字段
values = ', '.join(['%s']*len(data))
sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
# 将字段的value转化为元祖存入
cursor.execute(sql, tuple(data.values()))
db.commit()

问题2:连接mysql数据库执行SQL命令 

插入的SQL语句构建完成,下面就是使用pymysql连接数据库,获取数据库对象,游标对象执行SQL语句。

参考之前写的博客:PyMySQL使用_小杜℃的博客-CSDN博客_pymysql 使用

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值