我该如何创建一个MYSQL表模式来检查Excel(或CSV)文件呢?是否有已经准备好的Python库可以完成此任务?
列标题将被清理为列名。数据类型将基于电子表格列内容估计。操作完成后,数据将被加载到表中。
我有一个包含大约200个列的Excel文件,我想开始规范化处理。
我该如何创建一个MYSQL表模式来检查Excel(或CSV)文件呢?是否有已经准备好的Python库可以完成此任务?
列标题将被清理为列名。数据类型将基于电子表格列内容估计。操作完成后,数据将被加载到表中。
我有一个包含大约200个列的Excel文件,我想开始规范化处理。
xlrd
模块;从这里开始。[免责声明:我是作者]。xlrd
将单元格分类为文本、数字、日期、布尔、错误、空白和空。它通过检查与单元格相关联的格式(例如“dd/mm/yyyy”与“0.00”)来区分日期和数字。使用phpmyadmin的快速且简单的解决方法:
仅供参考,我记录下了以下内容:
LOAD DATA INFILE
CREATE TABLE
创建所有列为 TEXT 类型的表格,除了主键LOAD DATA LOCAL INFILE
将所有 CSV 数据加载到 TEXT 字段中。PROCEDURE ANALYSE
的输出,我可以使用 ALTER TABLE
给列赋予正确的类型和长度。对于任何有少量不同值的列,PROCEDURE ANALYSE
返回的是 ENUM
,这不是我需要的,但后来我发现它对规范化很有用。使用 PROCEDURE ANALYSE
查看 200 列非常轻松。PhpMyAdmin 提出的表结构输出是垃圾。SELECT DISTINCT
和 INSERT
在列上,并将结果插入到单独的表格中。我在旧表格中添加了一个 FK 列。在 INSERT
后,我得到了它的 ID 并更新了 FK 列。当循环结束时,我删除了旧列,只留下 FK 列。依此类推处理多个相关列。这比我预期的要快得多。python manage.py inspectdb
,将输出复制到 models.py 中,并添加了所有这些 ForeignKeyField
作为 MyISAM 上不存在 FK。编写了一些 Python views.py,urls.py 和少量模板... 完美!根据https://www.get-information-schools.service.gov.uk/Downloads提供的数据,创建了https://blocl.uk/schools