python输出雪花连接器到csv

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

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

  1. query = '''SELECT TOP 10 * FROM TABLE;'''
  2. conn = snowflake.connector.connect(user='XXXX',
  3. password='XXXX',
  4. account='XXXX')
  5. query_output = conn.cursor().execute(query)

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

aurhwmvo

aurhwmvo1#

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

  1. query = '''SELECT TOP 10 * FROM TABLE;'''
  2. conn = snowflake.connector.connect(user='XXXX',
  3. password='XXXX',
  4. account='XXXX')
  5. query_output = conn.cursor().execute(query)
  6. ## You may have to run: pip3 install --user pandas ##
  7. query_output.fetch_pandas_all().to_csv("/path/to/write/table.csv")

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

展开查看全部
sshcrbum

sshcrbum2#

  1. You can do like below :
  2. ---------------------------------------------------------------
  3. import csv
  4. .....
  5. .....
  6. .....
  7. rows=cur.fetchall()
  8. column_names = [i[0] for i in cur.description]
  9. fp = open('samplefile.csv', 'w')
  10. myFile = csv.writer(fp, lineterminator = '\n')
  11. myFile.writerow(column_names)
  12. myFile.writerows(rows)
  13. fp.close()
  14. .....
  15. .....
91zkwejq

91zkwejq3#

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

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

相关问题