0

我知道我可以制作一个简单的内存 CSV 文件,如下所示:

from cStringIO import StringIO
tsv_string = '1\t2\t3\n'
f = StringIO(tsv_string)

但是我如何调整它以包含null/None值?我问是因为我正在tsv_string使用真实数据动态生成我的。一些整数字段为空,我不能用空字符串替换它们,因为 Postgres 无法正确解释。

为了提供更多背景信息,我这样做是为了可以使用psycopg2'scopy_from函数,由于上述原因,该函数当前给了我这个错误:

psycopg2.DataError: invalid input syntax for integer: ""

所以问题是,我如何在我的内存 TSV 文件中放置空值。是否有更合适的文件扩展名可供使用?

4

1 回答 1

1

我从这个问题中找到了答案。

我必须将null参数指定为空字符串:

cursor.copy_from(f, 'my_table', columns=columns, null='')

于 2017-10-12T16:18:15.297 回答