2022年8月4日木曜日

Python でヒアドキュメントでブラケットを扱う場合は二重にしなければいけない

Python でヒアドキュメントでブラケットを扱う場合は二重にしなければいけない

概要

format で引数展開するブラケットとそうでないそのまま出力するブラケットを区別するようにしなければなりません

環境

  • macOS 11.8.7
  • Python 3.10.2

ダメなパターン

json = """
{
  '{key}': '{value}'
}
""".format(key="name", value="hawk")
print(json)
Traceback (most recent call last):
  File "/Users/hawk/test.py", line 1, in <module>
    json = """
ValueError: unexpected '{' in field name

成功パターン

json = """
{{
  '{key}': '{value}'
}}
""".format(key="name", value="hawk")
print(json)

おまけ: 前後の改行を削除する

json = """\
{{
  '{key}': '{value}'
}}\
""".format(key="name", value="hawk")
print(json)

0 件のコメント:

コメントを投稿