python输出雪花连接器到csv

2cmtqfgy  于 2021-08-13  发布在  Java
关注(0)|答案(3)|浏览(411)

我目前正在尝试打印雪花连接器查询的输出并将其写入csv,但在执行此操作时遇到问题。目前,我的代码示例如下所示:

query = '''SELECT TOP 10 * FROM TABLE;'''

conn = snowflake.connector.connect(user='XXXX',
                                   password='XXXX',
                                   account='XXXX')

query_output = conn.cursor().execute(query)

有没有一种方法可以让我打印查询的输出,比如 print(query_output) 然后把它写到csv上 query_output.to_csv(path) ?

aurhwmvo

aurhwmvo1#

我强烈推荐使用pandas的dataframesapi。在其他几个数据转换和分析功能中,它有一个非常灵活的优秀csv读写器实现。
snowflake的python连接器还本机支持将结果转换为Dataframe对象。
下面提供了一个非常简单、经过调整的示例(添加1行):

query = '''SELECT TOP 10 * FROM TABLE;'''

conn = snowflake.connector.connect(user='XXXX',
                                   password='XXXX',
                                   account='XXXX')

query_output = conn.cursor().execute(query)

## You may have to run: pip3 install --user pandas ##

query_output.fetch_pandas_all().to_csv("/path/to/write/table.csv")

默认csv格式使用 , 作为分隔符,操作系统特定的换行符( \n 除了在windows上使用 \r\n ),和最小引号(自动引号 VARCHAR 包含分隔符的列)。

sshcrbum

sshcrbum2#

You can do like below :
---------------------------------------------------------------

import csv
.....
.....
.....
rows=cur.fetchall()
column_names = [i[0] for i in cur.description]
fp = open('samplefile.csv', 'w')
myFile = csv.writer(fp, lineterminator = '\n')
myFile.writerow(column_names)
myFile.writerows(rows)
fp.close()
.....
.....
91zkwejq

91zkwejq3#

你可以用它来打印结果。要将其保存在csv中,只需使用for循环将结果保存在Dataframe中,然后使用df.to\u csv

cursor.execute(query)
    sql_result = cursor.fetchall()
    print(sql_result)     ## just print the results or use the for loop below to print the results row by row 
    for row in sql_result:
        print(row)

相关问题