[英]Incorrect date format in CSV file converting to SQL Server Table with Python
[英]Python, converting CSV file to SQL table
我有一個沒有標題的CSV文件,我試圖從文件中的某些列創建一個SQL表。 我嘗試了這里給出的解決方案: 使用Python將CSV文件導入到sqlite3數據庫表中 ,但不斷得到沒有定義col1的錯誤。 然后我嘗試在我的CSV文件中插入標題,我仍然得到一個KeyError。
任何幫助表示贊賞! (我根本不熟悉SQL)
如果.csv文件沒有標題,則不想使用DictReader; DictReader假定第1行是一組標題,並將它們用作每個后續行的鍵。 這可能就是你獲得KeyError
的原因。
該鏈接的示例的修改版本:
import csv, sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE t (col1, col2);")
with open('data.csv','rb') as fin:
dr = csv.reader(fin)
dicts = ({'col1': line[0], 'col2': line[1]} for line in dr)
to_db = ((i['col1'], i['col2']) for i in dicts)
cur.executemany("INSERT INTO t (col1, col2) VALUES (?, ?);", to_db)
con.commit()
下面的代碼將從路徑中讀取所有csv文件,並將所有數據加載到sqllite 3數據庫中的表中。
import sqllite3
import io
import os.path
import glob
cnx = sqlite3.connect(user='user', host='localhost', password='password',
database='dbname')
cursor=cnx.cursor(buffered= True);
path ='path/*/csv'
for files in glob.glob(path + "/*.csv"):
add_csv_file="""LOAD DATA LOCAL INFILE '%s' INTO TABLE tabkename FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 LINES;;;""" %(files)
print ("add_csv_file: %s" % files)
cursor.execute(add_csv_file)
cnx.commit()
cursor.close();
cnx.close();
讓我知道這個是否奏效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.