考虑以下 CSV 格式的文件 (stock_prices.csv):
Symbol,Price
RY,96.61
NA,58.69
BNS,80.35
在 Python 中使用odo函数将 CSV 文件插入 SQLite 数据库表时,NA 代码似乎作为 None 值插入。
from odo import odo, dshape
input_csv = 'stock_prices.csv'
output_sqlite = 'sqlite:///stocks.db::stock_prices'
ds = dshape('var * {Symbol: string, Price: float64}')
odo(input_csv, output_sqlite, dshape=ds)
这是我用来查询 SQLite 数据库的代码。
DB_PATH = 'stocks.db'
cn = sqlite3.connect(DB_PATH)
c = cn.cursor()
c.execute("SELECT * FROM stock_prices")
for row in c.fetchall():
print(row)
结果如下:
('RY', 96.61)
(None, 58.69)
('BNS', 80.35)
虽然我可以用“NA”更新 Symbol 为 None 的每一行,但我宁愿第一次正确插入该行。
注意:我正在使用odo函数,因为对于我的实际项目,我将插入到表中的文件大到几 GB,并且包含大约 15-20 列。在我看来, odo似乎是我在短时间内完成我需要做的事情的最快方式。