django之 将字典数据导入数据库以及解决insert自动增长的id不是从1开始或不连续

当我对mysql数据库进行insert插入操作时,发现insert自动增长的id不是从1开始或不连续

这个是我对我的mysql中的数据库zx里的configuration表进行insert字典格式的数据操作的代码:

import json,MySQLdb,pymysql,xlrd,xlwt,sys
from operator import mod
from bs4 import BeautifulSoup
from xlutils.copy import copy
from JobSpider.excel导入数据库 import temp_dict

def write_to_excel(words, filename, sheet_name='sheet1'):
    '''将item存储到excel中。
    :param words: 保存item的list    [{},{}]格式
    :return:
    '''
    try:
        # 1、创建工作薄
        work_book = xlwt.Workbook(encoding='utf-8')
        # 2、创建sheet表单
        sheet = work_book.add_sheet(sheet_name)
        # 3、写表头
        # head = ['英文','中文']
        head = []
        for k in words[0].keys():
            head.append(k)

        for i in range(len(head)):
            sheet.write(0, i, head[i])
        # 4、添加内容
        # 行号
        i = 1
        for item in words:
            for j in range(len(head)):
                sheet.write(i, j, item[head[j]])
            # 写完一行,将行号+1
            i += 1
        # 保存
        work_book.save(filename)
        print('写入excel成功!')
    except Exception as e:
        print('写入excel失败!', e)

def append_to_excel(words, filename):
    ''' 追加数据到excel
    :param words: 【item】 [{},{}]格式
    :param filename: 文件名
    :return:
    '''
    global sum
    try:
        # 打开excel
        word_book = xlrd.open_workbook(filename)
        # 获取所有的sheet表单。
        sheets = word_book.sheet_names()
        # 获取第一个表单
        work_sheet = word_book.sheet_by_name(sheets[0])
        # 获取已经写入的行数
        old_rows = work_sheet.nrows
        # 获取表头信息
        heads = work_sheet.row_values(0)
        # 将xlrd对象变成xlwt
        new_work_book = copy(word_book)
        # 添加内容
        new_sheet = new_work_book.get_sheet(0)
        i = old_rows
        for item in words:
            for j in range(len(heads)):
                new_sheet.write(i, j, item[heads[j]])
            i += 1
        new_work_book.save(filename)
        sum += 1
        print('追加成功!')
    except Exception as e:
        print('追加失败!', e)

def open_excel(excel_file):
    '''读取excel函数
    args:excel_file(excel文件,目录在py文件同目录)
    returns:book
    '''
    try:
        book = xlrd.open_workbook(excel_file) # 文件名,把文件与py文件放在同一目录下
        print(sys.getsizeof(book))
        return book
    except:
        print("打开excel文件失败!!")

if __name__ == '__main__':

    dict = [{
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 149,
                    "green_st": 0,
                    "green_end": 67.05,
                    "greenrate": 0.45
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 149,
                    "green_st": 67.05,
                    "green_end": 74.5,
                    "greenrate": 0.05
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 149,
                    "green_st": 74.5,
                    "green_end": 141.55,
                    "greenrate": 0.35
                }
            },

            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 132,
                    "green_st": 66.0,
                    "green_end": 85.8,
                    "greenrate": 0.32
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 132,
                    "green_st": 85.8,
                    "green_end": 132,
                    "greenrate": 0.35
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 100,
                    "green_st": 0,
                    "green_end": 31.0,
                    "greenrate": 0.31
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 100,
                    "green_st": 31.0,
                    "green_end": 50.0,
                    "greenrate": 0.19
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 100,
                    "green_st": 50.0,
                    "green_end": 81.0,
                    "greenrate": 0.22
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 100,
                    "green_st": 81.0,
                    "green_end": 100,
                    "greenrate": 0.19
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 103,
                    "green_st": 0,
                    "green_end": 44.29,
                    "greenrate": 0.43
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 103,
                    "green_st": 44.29,
                    "green_end": 51.5,
                    "greenrate": 0.07
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 103,
                    "green_st": 51.5,
                    "green_end": 95.78999999999999,
                    "greenrate": 0.21
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 103,
                    "green_st": 95.78999999999999,
                    "green_end": 103,
                    "greenrate": 0.07
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 128,
                    "green_st": 0,
                    "green_end": 46.08,
                    "greenrate": 0.36
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 128,
                    "green_st": 46.08,
                    "green_end": 64.0,
                    "greenrate": 0.14
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 128,
                    "green_st": 64.0,
                    "green_end": 110.08,
                    "greenrate": 0.45
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 128,
                    "green_st": 110.08,
                    "green_end": 128,
                    "greenrate": 0.14
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 132,
                    "green_st": 0,
                    "green_end": 34.32,
                    "greenrate": 0.26
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 132,
                    "green_st": 34.32,
                    "green_end": 66.0,
                    "greenrate": 0.24
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 132,
                    "green_st": 66.0,
                    "green_end": 100.32,
                    "greenrate": 0.39
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 132,
                    "green_st": 100.32,
                    "green_end": 132,
                    "greenrate": 0.24
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 134,
                    "green_st": 0,
                    "green_end": 28.14,
                    "greenrate": 0.21
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 134,
                    "green_st": 28.14,
                    "green_end": 67.0,
                    "greenrate": 0.29
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 134,
                    "green_st": 67.0,
                    "green_end": 95.14,
                    "greenrate": 0.4
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 134,
                    "green_st": 95.14,
                    "green_end": 134,
                    "greenrate": 0.29
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 120,
                    "green_st": 0,
                    "green_end": 30.0,
                    "greenrate": 0.25
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 120,
                    "green_st": 30.0,
                    "green_end": 60.0,
                    "greenrate": 0.25
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 120,
                    "green_st": 60.0,
                    "green_end": 90.0,
                    "greenrate": 0.39
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 120,
                    "green_st": 90.0,
                    "green_end": 120,
                    "greenrate": 0.25
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 102,
                    "green_st": 0,
                    "green_end": 36.72,
                    "greenrate": 0.36
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 102,
                    "green_st": 36.72,
                    "green_end": 51.0,
                    "greenrate": 0.14
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 102,
                    "green_st": 51.0,
                    "green_end": 87.72,
                    "greenrate": 0.29
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 102,
                    "green_st": 87.72,
                    "green_end": 102,
                    "greenrate": 0.14
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 122,
                    "green_st": 0,
                    "green_end": 28.06,
                    "greenrate": 0.23
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 122,
                    "green_st": 28.06,
                    "green_end": 61.0,
                    "greenrate": 0.27
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 122,
                    "green_st": 61.0,
                    "green_end": 89.06,
                    "greenrate": 0.16
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 122,
                    "green_st": 89.06,
                    "green_end": 122,
                    "greenrate": 0.27
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 99,
                    "green_st": 0,
                    "green_end": 37.62,
                    "greenrate": 0.38
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 99,
                    "green_st": 37.62,
                    "green_end": 49.5,
                    "greenrate": 0.12
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 99,
                    "green_st": 49.5,
                    "green_end": 87.12,
                    "greenrate": 0.37
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 99,
                    "green_st": 87.12,
                    "green_end": 99,
                    "greenrate": 0.12
                }
            },
            {
                "level": "phase",
                "id": 1,
                "content": {
                    "period": 127,
                    "green_st": 0,
                    "green_end": 39.37,
                    "greenrate": 0.31
                }
            },
            {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 127,
                    "green_st": 39.37,
                    "green_end": 63.5,
                    "greenrate": 0.19
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 127,
                    "green_st": 63.5,
                    "green_end": 102.87,
                    "greenrate": 0.34
                }
            },
            {
                "level": "phase",
                "id": 4,
                "content": {
                    "period": 127,
                    "green_st": 102.87,
                    "green_end": 127,
                    "greenrate": 0.19
                }
            },

             {
                "level": "phase",
                "id": 2,
                "content": {
                    "period": 137,
                    "green_st": 26.03,
                    "green_end": 68.5,
                    "greenrate": 0.31
                }
            },
            {
                "level": "phase",
                "id": 3,
                "content": {
                    "period": 137,
                    "green_st": 68.5,
                    "green_end": 94.53,
                    "greenrate": 0.2
                }
            }
        }
    ]
    # write_to_excel(dict,'effect.xlsx')
    # 创建数据库连接
    conn = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='zx', port=3306, charset='utf8')
    # 创建数据库游标对象cursor
    cur = conn.cursor()
    temp_dict = {}
    n = 1
    for li in dict:
        temp_dict['level'] = li['level']
        temp_dict['effect_id'] = li['id'] / 15 + 1
        temp_dict['period'] = li['content']['period']
        temp_dict['green_st'] = li['content']['green_st']
        temp_dict['green_end'] = li['content']['green_end']
        temp_dict['greenrate'] = li['content']['greenrate']
        temp_dict['effect_optimized_id'] = mod(li['id'],15)
        n += 1

        # 表名需修改
        table = "configuration"  # 表名
        keys = ','.join(temp_dict.keys())  # 列字段
        values = ', '.join(['%s'] * len(temp_dict))  # 行字段
        sql = 'insert into {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
        # 将字段的value转化为元祖存入
        cur.execute(sql, tuple(temp_dict.values()))
        conn.commit()
        # 关闭游标
    cur.close()
    # 关闭数据库连接
    conn.close()

出现这种现象的原因是:

原因:
1.insert 失败后,id 已自动增加,会造成 id 不连续
2.delete 后,再重新插入数据后,id 会从删除前最后的 id 开始增加,造成 id 不是从1开始增加

当mysql数据库中的表被清空后,但是insert新插入的数据的id不是从1开始, 可以试试这个方法,亲测有效!!

解决方法:

我是在Navicate Premium15中进行mysql数据库的可视化的,

(1)先打开Navicate Premium15,连接好数据库之后,点击”新建查询”,就会出现这么一个页面:

django之 将字典数据导入数据库以及解决insert自动增长的id不是从1开始或不连续

(2)在这个新建的查询页面里,输入命令:

truncate table table_name[表名];

注意:这块儿要写入自己数据库中存在的表名,不然会报错。 写入之后检查一遍是否写对。

django之 将字典数据导入数据库以及解决insert自动增长的id不是从1开始或不连续

(3)点击旁边的”运行”按钮之后,再次点开我的数据库zx中的表configuration,

django之 将字典数据导入数据库以及解决insert自动增长的id不是从1开始或不连续

发现这个id不是从1开始的问题消失了,好了,问题成功解决!!

OK,问题解决。

Original: https://blog.csdn.net/qq_45956730/article/details/124618830
Author: 水w
Title: django之 将字典数据导入数据库以及解决insert自动增长的id不是从1开始或不连续

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/736417/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 关于django中配置静态文件static后引入文件报错did you forget to register or load this tag?

    问题:报错static,did you forget to register or load this tag? 1.setting已经注册static文件 TEMPLATES模版…

    Python 2023年8月6日
    067
  • SpringBoot内置Tomcat配置参数

    SpringBoot项目使用内置的Tomcat部署时,可根据需要定义相关的参数: server: tomcat: accept-count: 80 #挂起的请求队列最大连接数,默认…

    Python 2023年11月7日
    064
  • Scrapy教程 – (3)如何翻頁爬取更多資料

    Scrapy教程 – 3如何翻頁爬取更多資料 前言 * 觀察頁面 如何翻頁 完整代碼 瀑布流網站(infinite scroll)怎麼翻頁? 前言 上个教程2完成了一个…

    Python 2023年10月4日
    036
  • 27-spark各版本对比

    一、spark1.x(1)引入内存计算的理念解决中间结果落盘导致的效率低下。早期官网中给出数据,在理想状况下,性能可达到MR的100倍(2)支持丰富的API,支持多种编程语言,如p…

    Python 2023年11月7日
    044
  • 计算机视觉专家:如何从C++转Python

    有人说用 Python 编程很简单,6 岁小孩都能学会。计算机视觉专家和编程语言爱好者 asya f 刚开始上手 Python 时也这么想。但门槛低就仅意味着使用简单吗?经常调用 …

    Python 2023年10月8日
    030
  • Python系列 设计学生管理系统

    1.1 系统简介 需求:进⼊系统显示系统功能界⾯,功能如下: 添加学员 删除学员 修改学员信息 查询学员信息 显示所有学员信息 退出系统 系统共6 个功能,⽤户根据⾃⼰需求选取。 …

    Python 2023年8月29日
    040
  • 【笔记】【机器学习基础】交叉验证

    (一)交叉验证 交叉验证(cross-validation) 是一种 评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。在交叉验证中,数据被多次划分,并且需…

    Python 2023年8月1日
    046
  • 图像灰度化与二值化

    图像灰度化 什么是图像灰度化? 图像灰度化并不是将单纯的图像变成灰色,而是将图片的BGR各通道以某种规律综合起来,使图片显示位灰色。规律如下: ; 手动实现灰度化 首先我们采用手动…

    Python 2023年8月28日
    047
  • 信道综和(1)

    信道综合(草稿) 某一信道经过插值,滤波,再变频的过程。 设4倍插值 x0 ,x1 ,x2 ,x3 ,x4 … 输入信号 x0,0,0,0,x1,0,0,0,x2,0,0,0,…

    Python 2023年11月8日
    066
  • vulnhub靶场之HACKSUDO: THOR

    准备: 攻击机:虚拟机kali、本机win10。 靶机:hacksudo: Thor,下载地址:https://download.vulnhub.com/hacksudo/hack…

    Python 2023年10月13日
    044
  • 大家都能看得懂的源码 – 那些关于DOM的常见Hook封装(一)

    本文是深入浅出 ahooks 源码系列文章的第十四篇,该系列已整理成文档-地址。觉得还不错,给个 star 支持一下哈,Thanks。 上一篇我们探讨了 ahooks 对 DOM …

    Python 2023年10月23日
    027
  • [Pandas] 数据合并 pd.merge

    实现类似SQL的join操作,通过pd.merge()方法可以自由灵活地操作各种逻辑的数据连接、合并等操作 可以将两个DataFrame或Series合并,最终返回一个合并后的Da…

    Python 2023年8月6日
    067
  • 我的 React 最佳实践

    There are a thousand Hamlets in a thousand people’s eyes. —– 威廉·莎士比亚 免责声…

    Python 2023年10月16日
    042
  • Flask 学习-85.Flask-SQLAlchemy 多个不确定条件查询

    在后台管理数据的时候,经常会有多个条件查询,查询参数可以是一个也可以是多个,如果没有查询参数就返回全部数据。 SQLAlchemy 使用query查询的时,可以使用filter()…

    Python 2023年8月9日
    072
  • 注册 openAI 与 ChatGPT 一起对话

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年11月3日
    055
  • LPDDR4硬件详解

    目录 2 LPDDR4颗粒介绍 2.1.LPDDR4架构 3.LPDDR4电气特性 3.1 上电时序 3.2 上电初始化时序 3.3 复位时序 3.4 下电时序 3.5 经典的核心…

    Python 2023年11月7日
    027
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球