どういうこっちゃ
こういうこと。
Python 3.7.2で確認。
.py
import string
# ↓これだと ValueError: Invalid placeholder in string が発生する
# template = string.Template('eng_keyは${eng_key}です。日本語キーは${日本語キー}です')
template = string.Template('eng_keyは${eng_key}です。日本語キーは${ja_key}です')
data = {
'eng_key': 'eng_hogehoge',
'日本語キー': 'ja_ほげほげ',
'ja_key': 'ja_hogehoge'
}
print(template.substitute(data))
# eng_keyはeng_hogehogeです。日本語キーはja_hogehogeです
dict内に日本語のキーを持っている場合は注意しましょう。
2020-08-04追記:
キーにハイフンを含んでいる場合も失敗するかもしれません。
詳しく調べてないですが、上記の例で言うとja-key
だとValueErrorを送出し、ja_key
なら大丈夫って感じです