错误预期类型为StringIO,取而代之的是str

时间:2018-08-07 16:05:23

标签: python io psycopg2 stringio

我正在尝试使用psycopg2中的copy_from函数将数据批量插入到postgres数据库中。 要使用此功能,我尝试使用io.StringIO(python 3.x)将元组列表放入类似文件的对象中。

    def __insert_cpe_dic__(self, cpe_dic):
        sio = StringIO
        sio.write('\n'.join(cpe for cpe in cpe_dic))
        sio.seek(0)
        self.cur.copy_from(sio, "cpe_dictionary")

我得到了错误:“预期类型为StringIO,取而代之的是str ...” 写入“ sio”变量时。 我找不到我的问题的答案,希望有人有主意。

1 个答案:

答案 0 :(得分:1)

执行 Microsoft.Extensions.Logging.Abstractions 时,您分配了一个类而不是一个类的实例。您需要添加括号以实例化该类的实例:sio = StringIO。另外,您不需要显式生成器,只需执行sio = StringIO()即可产生相同的结果。