gpt4 book ai didi

python - python 中的 ODO 命令以及如何使用简单命令将 CSV 中丢失的文件上传为 NULL

转载 作者:行者123 更新时间:2023-11-29 20:32:32 24 4
gpt4 key购买 nike

我尝试使用 python 中的 odo 将数据从 csv 文件加载到 mysql 表中。

csv 文件包含空白单元格。 odo 命令在遇到空白单元格时文件。

如何使用 odo 命令加载数据并为缺失的数据默认插入空值。

我正在尝试使用 odo python 包将从 Quandl 下载的简单 CSV 文件导入到 MySQL 表中

t = odo(csvpathName)

rsow 在 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 行的列 'High'") [SQL: 'LOAD DATA INFILE %(path)s\n进入表 QUANDL_DATA_WIKI\n 字符集 %(编码)s\n 字段\n 由 %(分隔符)s 终止\n 由 %(quotechar)s 封闭\n 由 %(escapechar)s 转义\n 行终止于 %(lineterminator)s\n 忽略 %(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, '分隔符': ','}]

有谁知道如何配置 ODO,以便我可以使用简单的命令将缺失值作为 NULL 值上传?

最佳答案

如果我将所有字段设置为 varchar(255),则它将缺失的字段读取为“”。 sqlalchemy 无法将 '' 从 csv 文件强制转换为另一种数据类型。

最好是使用 varchar 纯粹读取 csv 文件,然后将其转换为正确的格式

关于python - python 中的 ODO 命令以及如何使用简单命令将 CSV 中丢失的文件上传为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com