【发布时间】:2020-06-10 03:16:13
【问题描述】:
我有一个包含两列的 csv 文件。我创建了一个名为 beacon 的数据库,它采用 col1 和 col2。我尝试了两种不同的方法,一种使用 pandas,一种不使用。这两种方式都可以让我很好地读取 csv 文件,但我认为他们实际上并没有将这两列添加到我的数据库中!
第一种方法
import sqlite3
import pandas as pd
from pandas import DataFrame
conn = sqlite3.connect('MyDB.db')
c = conn.cursor()
read_beacon = pd.read_csv (r'/Users/seifeldeen/Downloads/BeaconID&ACID.csv')
read_beacon.to_sql('beacon', conn, if_exists= 'append', index = False)
conn.commit()
df = DataFrame(c.fetchall(), columns=['col1','col2'])
print (df)
export_csv = df.to_csv (r'/Users/seifeldeen/Downloads/export_list.csv', index = None, header=True)
第二种方法
import csv, sqlite3
con = sqlite3.connect("MyDB.db'")
cur = con.cursor()
cur.execute("CREATE TABLE t (col1, col2);")
with open('BeaconID&ACID.csv','r') as fin:
dr = csv.DictReader(fin) # comma is default delimiter
to_db = [(i['col1'], i['col2']) for i in dr]
cur.executemany("INSERT INTO n (col1, col2) VALUES (?, ?);", to_db)
con.commit()
con.close
另外,我确保 csv 列和信标表使用相同的列名。 提前致谢!
【问题讨论】:
标签: python sql pandas sqlite csv