如何使用python将.csv文件转换为.db文件?
我想用Python把一个csv文件转换成数据库文件,我该怎么做呢?
2 个回答
1
你需要找一个库,帮助你解析csv文件,或者用标准的Python逐行读取文件,然后用逗号分隔符来解析。这其实可以很简单,只要把每一行用逗号切开就行。
然后把数据插入到Sqlite数据库里。这里有Python的文档,介绍了SQLite。你也可以使用sqlalchemy或者其他的ORM工具。
另外一种方法是直接使用sqlite shell。
0
我觉得要做到这一点并不简单,特别是如果没有额外的信息,或者只是把所有东西都当作字符串来处理。也就是说,CSV文件里的信息通常不足以创建一个语义上“令人满意”的解决方案。虽然在某些情况下,可能可以推测出数据的类型,但这并不一定可靠。
我会使用Python的 csv
和 sqlite3
模块,尝试以下步骤:
- 把CSV文件第一行的单元格转换成SQL表格的列名(去掉一些奇怪的字符)
- 通过查看CSV文件第二行的单元格(数据的第一行),推测列的类型。首先尝试把每个单元格转换成
int
(整数),如果失败,再尝试float
(浮点数),如果还是失败,就把它当作字符串处理 - 这样你就能得到一个列名的列表和一个对应的可能类型的列表,然后可以用这些信息来生成一个
CREATE TABLE
的语句并执行它 - 然后尝试从CSV文件中
INSERT
第一行和后续的数据行
这种方法有很多可以批评的地方(比如没有主键或索引,如果第一行包含一个通常是字符串的字段,但恰好在第一行数据中有一个可以转换成 int
或 float
的值,就会出问题),不过对于大多数CSV文件来说,这种方法可能还是能勉强奏效的。