我正在尝试从GCS读取文件并将其存储在变量中,并从中创建一个postgresql表。我可以从我的代码连接到GC,并可以使用以下命令将数据存储在variabe中:
result = blob.download_as_string()
result = result.decode('utf8').strip()
打印结果的格式正确。然后,我尝试将数据从该变量插入到执行的表中:
sql = "COPY tablename FROM STDIN WITH DELIMITER ',' NULL AS '\\N' CSV HEADER;"
cursor.copy_expert(sql, result)
我收到此错误:
file must be a readable file-like object for COPY FROM; a writable file-like object for COPY TO
我还尝试了另一个功能:
cursor.copy_from(result, 'table' ,sep=',')
但是我得到了这个结果:
argument 1 must have a .read() method
因此,根据我的问题,如何将变量中的数据放入创建的表中。还是我必须将其下载到本地并使用它:
sql = "COPY tablename from STDIN WITH DELIMITER ',' CSV HEADER"
with open('/path/to/csv' , 'r+') as file:
cursor.copy_expert(sql, file)
这是可行的,但我不想将其下载到本地。我只想阅读并将其插入到我的表中
谢谢