Python从Snowflake表取值存变量并拼接文件名问题求助
问题解决方法
问题根源:
cs.execute()执行SQL后返回的是Snowflake游标对象,不是查询出来的实际数据,所以你看到的是游标对象的内存地址。修正步骤:
- 修正SQL语句的引号错误:三重单引号包裹的SQL里,单引号不需要转义,原语句里的
=\ 'HA'是多余的转义,改成= 'HA'即可。 - 执行查询后,调用游标对象的
fetchone()方法获取单行结果(你的查询只会返回一条数据),再提取其中的CONFIG_VALUE值。 - 将获取到的路径和目标文件名拼接,建议用
os.path.join适配不同系统的路径分隔符,避免拼接出错。
- 修正SQL语句的引号错误:三重单引号包裹的SQL里,单引号不需要转义,原语句里的
修正后的完整代码:
# 修正SQL语句,移除多余转义 HA_file_path = '''SELECT CONFIG_VALUE FROM CONFIGURATIONS WHERE CONFIG_NAME = 'HA' ''' # 执行查询 cs.execute(HA_file_path) # 获取单行结果,提取单列值 file_dir = cs.fetchone()[0] # 拼接完整文件路径,用os.path.join更规范 import os full_file_path = os.path.join(file_dir, "product_yyyymmdd.csv")
- 补充说明:
- 如果查询可能返回多条数据,改用
fetchall()获取所有结果后循环处理。 - 直接字符串拼接时要注意路径末尾是否有
/,比如f"{file_dir}/product_yyyymmdd.csv",但os.path.join会自动处理分隔符问题,更推荐使用。
- 如果查询可能返回多条数据,改用
内容的提问来源于stack exchange,提问作者digital
相关产品推荐
相关产品推荐

