如何使用python将.csv文件转换为.db文件?

0 投票
2 回答
1220 浏览
提问于 2025-04-17 22:34

我想用Python把一个csv文件转换成数据库文件,我该怎么做呢?

2 个回答

1
  1. 你需要找一个库,帮助你解析csv文件,或者用标准的Python逐行读取文件,然后用逗号分隔符来解析。这其实可以很简单,只要把每一行用逗号切开就行。

  2. 然后把数据插入到Sqlite数据库里。这里有Python的文档,介绍了SQLite。你也可以使用sqlalchemy或者其他的ORM工具。

另外一种方法是直接使用sqlite shell

0

我觉得要做到这一点并不简单,特别是如果没有额外的信息,或者只是把所有东西都当作字符串来处理。也就是说,CSV文件里的信息通常不足以创建一个语义上“令人满意”的解决方案。虽然在某些情况下,可能可以推测出数据的类型,但这并不一定可靠。

我会使用Python的 csvsqlite3 模块,尝试以下步骤:

  • 把CSV文件第一行的单元格转换成SQL表格的列名(去掉一些奇怪的字符)
  • 通过查看CSV文件第二行的单元格(数据的第一行),推测列的类型。首先尝试把每个单元格转换成 int(整数),如果失败,再尝试 float(浮点数),如果还是失败,就把它当作字符串处理
  • 这样你就能得到一个列名的列表和一个对应的可能类型的列表,然后可以用这些信息来生成一个 CREATE TABLE 的语句并执行它
  • 然后尝试从CSV文件中 INSERT 第一行和后续的数据行

这种方法有很多可以批评的地方(比如没有主键或索引,如果第一行包含一个通常是字符串的字段,但恰好在第一行数据中有一个可以转换成 intfloat 的值,就会出问题),不过对于大多数CSV文件来说,这种方法可能还是能勉强奏效的。

撰写回答