【问题标题】:How to increase default variable length in Python如何在 Python 中增加默认变量长度
【发布时间】: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


【解决方案1】:

您遇到的是在 Redshift 架构中设置的限制,而不是在 python 或 pandas 中。 Redshift 基于 PostgreSQL,因此您可能会发现 the answers here 很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多