iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Python保存dict字典类型数据到Mysql并自动创建表与列
  • 252
分享到

Python保存dict字典类型数据到Mysql并自动创建表与列

2024-04-02 19:04:59 252人浏览 八月长安
摘要

字典是另一种可变容器模型,且可存储任意类型对象,主要是工具类, 接下来使用pymysql来创建表与SQL 下面来看看示例代码: import pyMysql class Usem

字典是另一种可变容器模型,且可存储任意类型对象,主要是工具类,

接下来使用pymysql来创建表与SQL

下面来看看示例代码:

import pyMysql


class Usemysql(object):
    def __init__(self, user, passwd, db, host="127.0.0.1", port=3306):
        self.db = db
        self.conn = pymysql.connect(
            host=host, user=user, passwd=passwd, db=db, port=port, charset='utf8')  # 链接数据库
        self.cursor = self.conn.cursor()

    def table_exists(self, table_name) -> bool:
        """判断表是否存在
        :param table_name: 表名
        :return: 存在返回True,不存在返回False
        """
        sql = "show tables;"
        self.cursor.execute(sql)
        tables = self.cursor.fetchall()
        for _t in tables:
            if table_name == _t[0]:
                return True
        return False

    def create_table(self, data: dict, table_name):
        """创建表"""
        # 构造数据库
        sql_key_str = ''
        columnStyle = ' text'  # 数据库字段类型
        for key in data.keys():
            sql_key_str = sql_key_str + ' ' + key + columnStyle + ','
        self.cursor.execute("CREATE TABLE %s (%s)" % (table_name, sql_key_str[:-1]))
        # 添加自增ID
        self.cursor.execute("""ALTER TABLE `{}` \
                    ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST, \
                    ADD PRIMARY KEY (`id`);"""
                            .fORMat(table_name))
        # 添加创建时间
        self.cursor.execute(
            """ALTER TABLE {} ADD join_time timestamp NULL DEFAULT current_timestamp();""".format(table_name))

    def write_dict(self, data: dict, table_name):
        """
        写入mysql,如果没有表,创建表
        :param data: 字典类型
        :param table_name: 表名
        :return:
        """
        if not self.table_exists(table_name):
            self.create_table(data, table_name)
        sql_key = ''  # 数据库行字段
        sql_value = ''  # 数据库值
        for key in data.keys():  # 生成insert插入语句
            sql_value = (sql_value + '"' + pymysql.escape_string(data[key]) + '"' + ',')
            sql_key = sql_key + ' ' + key + ','

        self.cursor.execute(
            "INSERT INTO %s (%s) VALUES (%s)" % (table_name, sql_key[:-1], sql_value[:-1]))
        self.conn.commit()  # 提交当前事务


if __name__ == '__main__':
    mysql = UseMysql('用户名', '密码', '数据库名')
    my_data1 = {"col1": "a", "col2": "b", "col3": "c", }
    mysql.write_dict(my_data1, table_name="mytable")
    my_data2 = {"col1": "a2", "col2": "b2"}
    mysql.write_dict(my_data2, table_name="mytable")

到此这篇关于python保存dict字典类型数据到Mysql并自动创建表与列的文章就介绍到这了,更多相关Python保存dict字典类型数据到Mysql并自动创建表与列内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: Python保存dict字典类型数据到Mysql并自动创建表与列

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

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

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

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

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

  • 微信公众号

  • 商务合作