生成检查Excel(CSV)和导入数据的表模式

lin*_*eak 6 python mysql csv excel import-from-excel

如何创建检查Excel(或CSV)文件的MYSQL表模式.这个任务有没有现成的Python库?

列标题将清理为列名称.将根据电子表格列的内容估算数据类型.完成后,数据将加载到表中.

我有一个约200列的Excel文件,我想开始规范化.

lin*_*eak 1

仅供(我的)参考,我在下面记录了我所做的事情:

  1. XLRD 很实用,但是我刚刚将 Excel 数据保存为 CSV,所以我可以使用LOAD DATA INFILE
  2. 我已复制标题行并开始编写导入和规范化脚本
  3. 脚本执行以下操作:CREATE TABLE将所有列设为 TEXT,主键除外
  4. 查询 mysql:LOAD DATA LOCAL INFILE将所有 CSV 数据加载到 TEXT 字段中。
  5. 根据 的输出PROCEDURE ANALYSE,我能够ALTER TABLE为列提供正确的类型和长度。PROCEDURE ANALYSE返回ENUM任何具有很少不同值的列,这不是我需要的,但我发现这对于以后的标准化很有用。使用 . 目视 200 列轻而易举PROCEDURE ANALYSE。PhpMyAdmin 的输出表明表结构是垃圾。
  6. 我编写了一些规范化,主要使用SELECT DISTINCT列并将INSERT结果添加到单独的表中。我首先在旧表中添加了 FK 列。紧接着INSERT,我就得到了它的 ID 并UPDATE编辑了 FK 列。循环完成后,我删除了旧列,只留下 FK 列。与多个依赖列类似。这比我预期的要快得多。
  7. 我运行 (django) python manage.py inspctdb,将输出复制到 models.py 并添加所有这些,ForeignkeyField因为 MyISAM 上不存在 FK。写了一些Python的views.py,urls.py,一些模板......TADA

根据https://www.get-information-schools.service.gov.uk/Downloads的数据创建https://blocl.uk/schools