【发布时间】:2018-10-19 22:03:39
【问题描述】:
有没有办法增加 Python 中的默认变量长度(我认为字符串的默认值为 255?)?例如,在 SAS 中,有一条长度语句可以为某个变量分配固定长度。它的工作方式类似于 - LENGTH variable-list $ number-of-bytes;
我想这样做的原因是这个错误:
DataError: value too long for type character varying(256)
我正在尝试将 pandas 数据框写入 redshift,但由于上述错误而无法正常工作。现在我有近 400 个变量/列,其中大多数是字符串类型(基本上是描述或 cmets),并且不可能检查每个变量以找到问题。还有一点需要注意的是,pandas 数据框将那些字符串或 varchar 类型的列视为“对象”类型。
我已尝试搜索该问题,但没有看到太多信息。
【问题讨论】:
-
这与 Python 无关——如果你在 redshift 中指定 256 是限制——它将强制执行该约束。您可以在加载之前截断您的字符串,或者如果 256 不够,则运行
alter table约束。 -
你认为这可能会增加长度吗? data.to_sql(name="table", con=engine, if_exists='replace', index=False, dtype={'col1': sqlalchemy.types.VARCHAR(length=3000), 'col2': sqlalchemy.types。 VARCHAR(length=3000), 'col3': sqlalchemy.types.VARCHAR(length=3000) } )
标签: python-3.x pandas amazon-redshift string-length