You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用%格式化替代SQL查询的f-string?解决日志记录问题

替换SQL查询中的f-string为%格式化方式

将SQL查询的f-string格式替换为%格式化,既可以实现参数填充,也能满足日志记录原始查询模板的需求,修改后的代码如下:

import logging
logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 定义SQL查询模板,用%s作为参数占位符
query_template = """(select * from %s.%s
       where xyz =4
       and abc = 1
       fetch first 10000 rows only)as some_name"""
# 使用%运算符填充参数
query_random = query_template % (SCHEMA, TABLE_NAME)

# 记录原始模板和填充后的SQL到日志
logging.info("SQL查询模板: %s", query_template)
logging.info("填充后的SQL查询: %s", query_random)

df = spark.read.format("jd")\
                      .option("url", jd_url)\
                      .option("driver", jd_driver)\
                      .option("dbtable", query_random)\
                      .option("user", user)\
                      .option("password", password).load()

print(df)

修改说明

  • 单独定义带占位符的SQL模板,避开f-string立即替换参数的特性,方便留存原始查询结构
  • 通过%运算符将SCHEMA和TABLE_NAME依次填充到模板的占位符中
  • 日志可分别记录原始模板与最终执行的SQL语句,解决f-string无法记录查询模板的问题

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 17:20:20