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

时间:2014-03-16 21:31:34

标签: python linux database sqlite

我想使用python将csv文件转换为db(数据库)文件。我该怎么办?

2 个答案:

答案 0 :(得分:1)

  1. 您需要找到一个可以帮助您解析csv文件的库,或者逐行读取文件并使用标准python解析它,它可以像在逗号上拆分行一样简单。

  2. 在Sqlite数据库中插入。这里有SQLite的python文档。您也可以使用sqlalchemy或其他ORM。

  3. 另一种方式,可以使用sqlite shell本身。

答案 1 :(得分:0)

我不认为这可以在没有带外信息的情况下完全通用地完成,或者只是将所有内容都视为字符串/文本。也就是说,CSV文件中包含的信息通常不足以创建语义上“令人满意”的解决方案。 可能足以推断某些情况下可能的类型,但它远非防弹。

我会使用Python的csvsqlite3模块,并尝试:

  • 将第一个CSV行中的单元格转换为SQL列的名称(条带“古怪”字符)
  • 通过遍历第二个CSV文件行(第一行数据)中的单元格来推断列的类型,尝试先将每个单元格转换为int,如果失败,请尝试{{1如果那也失败了,那就回到字符串
  • 这将为您提供一个名称列表和一个相应的可能类型列表,您可以从中滚动float语句并执行它
  • 尝试CREATE TABLE CSV文件中的第一个和后续数据行

在这种方法中有很多东西需要批评(例如,没有键或索引,如果第一行包含一般字符串的字段,但恰好包含一个Python可转换为{{1}的值,则会失败第一条数据行中的{}或INSERT),但对于大多数CSV文件来说,它可能都是可行的。