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

 更新时间:2022年02月11日 17:22:39   作者:呆萌的代Ma  
这篇文章主要介绍了Python保存dict字典类型数据到Mysql并自动创建表与列,字典是另一种可变容器模型,且可存储任意类型对象,想了解更多内容的小伙伴可以和小编一起进入下面文章学习更多内容,希望对你有所帮助

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

接下来使用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并自动创建表与列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python对Syslog信息进行分析并绘图的实现

    使用Python对Syslog信息进行分析并绘图的实现

    这篇文章主要介绍了使用Python对Syslog信息进行分析并绘图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python自动化之re模块详解

    python自动化之re模块详解

    这篇文章主要为大家介绍了python自动化之re模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Python协程的2种实现方式分享

    Python协程的2种实现方式分享

    在 Python 中,协程(Coroutine)是一种轻量级的并发编程方式,可以通过协作式多任务来实现高效的并发执行。本文主要介绍了Python实现协程的2种方式,希望对大家有所帮助
    2023-04-04
  • python在Windows下安装setuptools(easy_install工具)步骤详解

    python在Windows下安装setuptools(easy_install工具)步骤详解

    这篇文章主要介绍了python在Windows下安装setuptools(easy_install工具)步骤,简单介绍了setuptools并分析了其安装步骤与所涉及的相关软件,需要的朋友可以参考下
    2016-07-07
  • Python Docx库完美操作word文档实例探究

    Python Docx库完美操作word文档实例探究

    这篇文章主要为大家介绍了Python Docx库完美操作word文档,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 使用Python的matplotlib库绘制柱状图

    使用Python的matplotlib库绘制柱状图

    这篇文章主要介绍了使用Python的matplotlib库绘制柱状图,Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表,可根据数据集自行定义x,y轴,绘制图形,需要的朋友可以参考下
    2023-07-07
  • Python中常见内置函数的用法合集

    Python中常见内置函数的用法合集

    本文将从基础到高级,详细介绍Python中常见的内置函数,通过代码示例和中文注释,帮助您深入理解如何在不同情景下灵活应用这些函数,需要的可以学习一下
    2023-09-09
  • python2使用bs4爬取腾讯社招过程解析

    python2使用bs4爬取腾讯社招过程解析

    这篇文章主要介绍了python2使用bs4爬取腾讯社招过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python模块之paramiko实例代码

    python模块之paramiko实例代码

    这篇文章主要介绍了python模块之paramiko,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python机器学习NLP自然语言处理基本操作新闻分类

    Python机器学习NLP自然语言处理基本操作新闻分类

    本文是Python机器学习NLP自然语言处理系列文章,开始我们自然语言处理 (NLP) 的学习旅程. 本文主要学习NLP自然语言处理基本操作新闻分类
    2021-09-09

最新评论