我知道我可以通过以下方式将.csv文件导入sqlite数据库中的预先存在的表:
.import filename.csv tablename
但是,是否有这样的方法/库可以自动创建表(及其模式),因此我不必手动定义:column1 = string,column2 = int ….等.
或者,我们可以将所有内容导入为字符串.根据我的有限理解,sqlite3似乎将所有字段都视为字符串?
编辑:
这里的每个列的名称并不那么重要(假设我们可以从CSV文件的第一行获取数据,或者它们可以是任意名称)关键是识别每列的值类型.
最佳答案 你在评论中说自己确定列的类型是一个非常重要的问题. (想象一百万行看起来都像数字,但其中一行有一个Z. – 现在该行必须输入“string”.)
尽管非常重要,但90%的情景也很容易实现.我会写一个小的Python脚本来做到这一点. Python有一个非常好的库来解析CSV文件,它的sqlite接口很简单.
只需加载CSV,猜测并检查列类型.设计一个封装此信息的create table,然后发出insert intos.我无法想象这会占用超过20行的Python.