【问题标题】:Substitute string with Python Template strings method用 Python 模板字符串方法替换字符串
【发布时间】:2023-04-01 02:44:02
【问题描述】:

我想使用模板字符串方法来替换字符串:
例如:

cfg['hdfs_location']=Template(cfg['hdfs_location']).substitute(**cfg)

有两个占位符 $table 和 $rows 可以替换
'/tmp/hive_perf_test/$table_table_$rows'

我可以替换的最后一个字符串 '$rows' 但 '$table' 是不可能的。
我收到此错误消息:

{KeyError}'table_table_'

非常感谢您的帮助。

【问题讨论】:

  • Template 来自哪个图书馆?
  • 我猜你希望 $table 被替换,但 Python 认为你希望 $table_table 被替换。
  • 你可以在**cfg 中发布你的内容吗?
  • 简单 hack,将 idpattern 从默认的 [_a-z][_a-z0-9]* 更改为例如[a-z][a-z0-9]* 告诉 python _ 是模板变量名的结尾
  • 或者你可以使用${table}_table_${rows}

标签:
python
string
substitution