python - 通过使用标题作为列名加载 csv 文件来创建数据库(并添加以文件名作为名称的列)

标签 python mysql sql csv

我有 CSV 文件,我想在 mysql 中创建数据库表。我进行了全面搜索,但找不到任何有关如何使用标题作为表的列名称的信息。我想这一定是可能的。换句话说,当在 MySQL 中创建新表时,您真的必须提前定义所有列、它们的名称、它们的类型等。如果 MySQL 能够执行类似 Office Access 的操作,根据值的外观转换为相应的类型,那就太好了。

我知道这可能是一个定义过于广泛的问题,但在这件事上的任何指示都会有所帮助。我也在学习Python,所以如果可以通过Python脚本来完成那就太好了。

非常感谢。

最佳答案

使用 Python,您可以使用 csv DictReader模块使得使用 csv 文件中的标题作为输入数据的标签变得非常容易。它基本上将所有行作为字典对象读取,并以键作为标题,因此您可以在访问 mySQL 时使用键作为列名称的来源。

将 csv 读入字典列表的简单示例:

示例.csv:

name,address,city,state,phone
jack,111 washington st, somewhere, NE, 888-867-5309
jill,112 washington st, somewhere else, NE, 888-867-5310
john,113 washington st, another place, NE, 888-867-5311

示例.py:

import csv

data = []
with open("example.csv") as csvfile:
    reader = csv.DictReader(csvfile)
    for line in reader:
        data.append(line)

print(data[0].keys())
print(data[0]['address'])
print(data[1]['name'])
print(data[2]['phone'])

输出:

$:python example.py
dict_keys(['name', 'address', 'city', 'state', 'phone'])
111 washington st
jill
 888-867-5311

更深入的示例位于:http://java.dzone.com/articles/python-101-reading-and-writing

有关在 Python 中连接 MySQL 的一些信息:How do I connect to a MySQL Database in Python?

关于python - 通过使用标题作为列名加载 csv 文件来创建数据库(并添加以文件名作为名称的列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108160/

相关文章:

MySQL - 选择字段不相等的行

javascript - PHP中通过http请求获取上传进度

php - 错误: No database selected when displaying data on website

php - 正则表达式是否足够或我需要更多检查?

sql - 显式地将列默认为 NULL

python - Pandas Groupby EWM

python - NamedTemporaryFile 存在,但外部程序无法访问它

python - 使用 Python 从网站源代码中提取 href 链接

sql - 从减去的一个字符串列创建两个字符串列

python - 在元组列表上使用二分法,但仅使用第一个值进行比较