我正在尝试使用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”变量时。 我找不到我的问题的答案,希望有人有主意。
答案 0 :(得分:1)
执行 Microsoft.Extensions.Logging.Abstractions
时,您分配了一个类而不是一个类的实例。您需要添加括号以实例化该类的实例:sio = StringIO
。另外,您不需要显式生成器,只需执行sio = StringIO()
即可产生相同的结果。