Postgres / GCS / Python:将存储在变量中的数据(从GCS读取)插入到postgres表中

时间:2019-05-08 13:45:18

标签: python postgresql google-cloud-storage

我正在尝试从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)

这是可行的,但我不想将其下载到本地。我只想阅读并将其插入到我的表中

谢谢

0 个答案:

没有答案