我有 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/