python - 如何将字符串作为 f 字符串传递给另一个方法?
问题描述
我计划将多个基于 f 字符串的模板传递到另一种迭代数据库和表的通用方法中。
我的代码:
@staticmethod
def query1_template():
query = '''
SELECT
'{db}' as db_name,
'{tbl}' as tbl_name,
'{config[db][tbl]['definition']}' as definition
'''
return query
def build(self, query, config):
etl = ''
for i, db in enumerate(self.datasets):
for j, tbl in enumerate(self.datasets.get(db)):
if i > 0 or j > 0:
etl += 'UNION ALL'
etl += query
电流输出:
SELECT
'{db}' as db_name,
'{tbl}' as tbl_name
UNION ALL
SELECT ...
我的预期输出应该是实际填写了{db}
and值。{tbl}
我也尝试过etl += query.format(db, tbl)
,但不断收到 db 的关键错误。
有没有办法让这个逻辑起作用?
解决方案
在query1_template()
方法中:
query = '''
SELECT
'{db}' as db_name,
'{tbl}' as tbl_name,
'{definition}' as definition
'''
在build()
方法中:
etl += query.format(db=db, tbl=tbl, definition=config[db][tbl]['definition']
推荐阅读
- c - 我正在尝试从文件中获取令牌并制作链接列表。但我失败了
- java - 在 jboss 中部署应用程序失败
- java - Android WebView 自动 Facebook 登录
- chatbot - 如何导入 Amazon Lex 意图并直接在 Botium convo 中使用它进行测试
- python - Python,在不同对象上调用方法给出相同的结果
- angular - 如何将排序添加到 mat-list 中?
- ios - 从 ionic 项目中安全移除 UIWebView + 支持 iOS 10
- linux - 从 WSL 写入 Windows 磁盘(Linux 的 Windows 子系统)
- google-bigquery - 当我使用 Big Query Data Transfer 导入 DCM 数据时,点击次数和展示次数数据未导入
- android - Android Gradle:signingConfig.name 不能为空