【问题标题】:creating a database table using very large csv in python在 python 中使用非常大的 csv 创建数据库表
【发布时间】:2015-02-17 17:58:13
【问题描述】:

我有一个非常大的带有分隔符“|”的 csv 文件在db中创建一个表。下面给出了csv的前5行

"Tha Twilight New Moon DVDrip 2009 XviD-AMiABLE"|694554360|2cae2fc76d110f35917d5d069282afd8335bc306|0|movies|0|1
"[RiP] Burn Up!"|734636626|f80762eb595c286b765848d13074247ee6a90d8c|2|other|0|0
"%5BA-Flux%26Lunar%5D  Hunter x Hunter Episodes 1-5 %5BDVD%5D"|1094189056|b639c563d665c1f2827a815267033724abfe4f4f|5|anime|0|0
"Hack SIGN 1-25 extra eps -aak-"|6258485500|8eb275e544913bd3255fd4781f058c3f2f98f77e|27|other|0|0
"Hunter X Hunter - 11-15 [A-K]"|971266048|ce07cc4a4da8e00e1c4972278d6e14b3049bb5cf|5|anime|0|0

下面也给出了我的必填字段

    CREATE TABLE torrents (
  name TEXT,
  size DATE,
  hash TEXT UNIQUE,
  downloads_count TEXT,
  category TEXT,
  seeders INTEGER,
  leechers INTEGER
);

.mode csv
.separator "|"
.import torrents_mini.csv torrents

请提出更好更快的方法来将此表创建到数据库中?

【问题讨论】:

  • @IanAuld,你的评论很迂腐,也不是很有帮助。
  • 请展示你到目前为止所做的尝试;包括你的代码。
  • 您能否具体说明您需要帮助的地方。我无法弄清楚您的具体问题。
  • @IanAuld,仅供参考,csv 模块可以使用任何分隔符,而不仅仅是逗号。 reader = csv.reader(f, delimiter='|')
  • 实际上,是的,人们通常将其称为 CSV 文件(通常,它指的是像这样的单字符分隔文件格式),它可以由 Python 处理csv 模块通过指定适当的 delimiter 关键字。考虑w = csv.reader(open('/etc/passwd'), delimiter=':')

标签: python csv sqlite


【解决方案1】:
import csv
import sqlite3

conn = sqlite3.connect('navjod.db')
c = conn.cursor()
# Create table name | size | hash | downloads_count | category_id* | seeders | leechers
c.execute("DROP TABLE IF EXISTS torrents")
c.execute('''CREATE TABLE torrents
             (name TEXT, size TEXT, hash TEXT UNIQUE, downloads_count TEXT,
                category TEXT, seeders INTEGER, leechers INTEGER)''')

with open('sample.csv') as csvfile:
    spamreader = csv.reader(csvfile, delimiter='|')
    for i in spamreader:
        c.execute("INSERT INTO torrents VALUES (?,?,?,?,?,?,?)", i)

conn.commit()

希望对你有帮助:)

【讨论】:

  • 这与sqlite3 工具的功能有何不同?
猜你喜欢
  • 2015-08-18
  • 2011-07-15
  • 2018-06-28
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多