簡體   English   中英

使用 Python 將數據從 csv 導入數據庫

[英]Importing data from csv to database using Python

我需要使用 csv 文件中的信息創建一個數據庫,格式為:
name,house,birth示例:

Adelaide Murton,Slytherin,1982  
Adrian Pucey,Slytherin,1977

然后我需要將名稱拆分后導出到數據庫中,格式如下: first | middle | last | house | birth first | middle | last | house | birth

以下是我的代碼; 它僅導出第一行的名字,第二行僅中間名,3d 行僅姓氏,第四行僅房屋等,其他所有內容均顯示為 NULL。 我的數據庫中最終有 792 行而不是 40 行。 Output 圖像

import csv
import sys
import cs50

db = cs50.SQL("sqlite:///students.db")

if len(sys.argv) != 2:
        sys.exit("Usage: import.py file.csv")
    
with open(sys.argv[1],'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        x = row["name"].split()
        db.execute("INSERT INTO students (first, middle, last, house, birth) VALUES (?,?,?,?,?)", x[0], x[1] if len(x)==3 else None, x[2] if len(x)==3 else x[1], row["house"], row["birth"])

在運行導入之前確保學生表為空,否則所有嘗試的所有行,無論是否有錯誤,都在數據庫中。 創建描述的 output 的錯誤只會插入大約 280 行。 (每 1 個 csv 行 7 db 行)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM