我嘗試從python中使用odo將csv文件中的數據加載到mysql表中。Python中的ODO命令以及如何使用簡單的命令將NULL從CSV中上傳爲NULL
csv文件包含空白單元格。遇到空白單元格時的odo命令文件。
如何使用odo命令加載數據併爲缺失的數據默認插入空值。
我試圖導入我從Quandl下載到MySQL表與ODO Python包
t = odo(csvpathName)
的rsow這個樣子的在CSV一個簡單的CSV文件。第二行缺少一個值。
A 7/25/2016 46.49 46.52 45.92 46.14 1719772 0 1 46.49 46.52 45.92 46.14 1719772
B 7/25/2016 46.49 46.52 45.92 1719772 0 1 46.49 46.52 45.92 46.14 1719772
MySQL的表被定義如下:
Ticker varchar(255) NOT NULL,
Date varchar(255) NOT NULL,
Open numeric(15,2) NULL,
High numeric(15,2) NULL,
Low numeric(15,2) NULL,
Close numeric(15,2) NULL,
Volume bigint NULL,
ExDividend numeric(15,2),
SplitRatio int NULL,
OpenAdj numeric(15,2) NULL,
HighAdj numeric(15,2) NULL,
LowAdj numeric(15,2) NULL,
CloseAdj numeric(15,2) NULL,
VolumeAdj bigint NULL,
PRIMARY KEY(Ticker,Date)
它拋出異常1366具有以下信息:
sqlalchemy.exc.InternalError:(pymysql.err.InternalError)( 1366,「不正確的十進制值:''在第185行'列'高')[SQL:'LOAD DATA INFILE%(path)s \ n INTO TABLE QUANDL_DATA_WIKI
\ n CHARACTER SET%(encoding)s \ n FIELDS \ n %(分隔符)s \ n ENCLOSED BY%(quotechar)s \ n ESCAPED BY%(escapechar)s \ n LINES TER MINATE BY%lineterminator s \ n IGNORE%(skiprows)s LINES \ n'] [參數:{'quotechar':''','encoding':'utf8','path':'C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ Uploads \ WIKI_20160725.partial.csv','lineterminator':'\ n','escapechar':'\','skiprows':0,'delimiter':','}]
有誰知道如何配置ODO,所以我可以用簡單的命令上傳缺失值作爲NULL值?