LoginSignup
0
0

More than 3 years have passed since last update.

【覚書】pythonのstring.Template.substituteでは日本語キーを使えない

Last updated at Posted at 2020-05-25

どういうこっちゃ

こういうこと。
Python 3.7.2で確認。

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なら大丈夫って感じです

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0