Python输出雪花连接器到CSV

问题描述 投票:-1回答:3

我目前正在尝试打印雪花连接器查询的输出并将其写入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),然后再像query_output.to_csv(path)一样将其写到csv?

python sql csv snowflake-cloud-data-platform
3个回答
1
投票
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()
.....
.....

0
投票

您可以使用它来打印结果。要将其保存在csv中,只需使用for循环将结果保存在数据帧中,然后使用df.to_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)

0
投票

我强烈建议使用Pandas'DataFrames API。在其他几种数据转换和分析功能中,very flexible具有出色的CSV读取器和写入器实现。

Snowflake的Python连接器也natively supports将结果转换为Pandas DataFrame对象。

下面提供了一个非常简单的改编示例(添加了2行):

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 ##

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

默认的CSV格式使用,作为分隔符,使用特定于操作系统的换行符(Windows除外,\n,使用\r\n的Windows除外),并使用最小引号(自动引号VARCHAR列,其中包含定界符) )。

© www.soinside.com 2019 - 2024. All rights reserved.