psycopg2:TypeError:预期的字节或unicode字符串,改为使用quoted_name

时间:2018-05-28 17:05:53

标签: python pandas psycopg2

我正在尝试将一个~900 MB的文件加载到Postgres数据库,但是copy_from方法导致了一些问题(df.to_sql方法花了8个多小时将这些数据加载到AWS) 。

例如,这里有一些将数据帧转换为stringio

的代码
sio = StringIO()
    sio.write(raw_data.to_csv(index=False, header=None, quoting=csv.QUOTE_NONNUMERIC, sep=','))
    sio.seek(0)

    with conn.cursor() as cur:
        # cur.copy_expert("""COPY sam_monthly_extract_temp FROM STDIN WITH (FORMAT CSV)""", sio)
        cur.copy_from(sio, 'sam_monthly_extract_temp', sep=',', columns=load_column_names)
        conn.commit()

这引发了错误:

Traceback (most recent call last):
  File "sam_monthly_extract.py", line 312, in <module>
    cur.copy_from(sio, 'sam_monthly_extract_temp', sep=',', columns=load_column_names)
TypeError: Expected bytes or unicode string, got quoted_name instead

我对导致这种情况的原因感到茫然?是否与quoting方法中的to_csv kwarg有关?

感谢任何帮助。

编辑:其中一些地址字段中包含,,因此它引用了这些字段。我在两个地方都将sep=','更改为sep='|',并停止双重引用其中包含,的地址字段。但问题仍然存在。

编辑2:我使用了它,

cur.copy_expert("""COPY sam_monthly_extract_temp FROM STDIN WITH (FORMAT CSV, DELIMITER '|')""", sio)

0 个答案:

没有答案