PythonでオンザフライでjQuery関数を作成しています:
jQuery = ("$('%(other_id)').click(function() { "
" if ($(this).is(':checked')) { "
" $('%(text_id)').show() "
" } "
" else {"
" $('%(text_id)').hide()"
" }"
" });")
と に変数を挿入する必要がother_id
ありtext_id
ます。記号が文字列テンプレートに使用されていることがわかり$
ます(ただし、それが何をするかはわかりません)ので、double- $
s($$
)でエスケープします
jQuery = ("$$('%(other_id)').click(function() { "
" if ($$(this).is(':checked')) { "
" $$('%(text_id)').show() "
" } "
" else {"
" $$('%(text_id)').hide()"
" }"
" });")
しかし、私はまだこれをフォーマットすることはできません:
>>> choice_id = 'foo'
>>> text_choice_id = 'bar'
>>> jQuery = ("$$('%(other_id)').click(function() { "
" if ($$(this).is(':checked')) { "
" $$('%(text_id)').show() "
" } "
" else {"
" $$('%(text_id)').hide()"
" }"
" });")
>>> jQuery %{'other_id' : choice_id, 'text_id' : text_choice_id }
Traceback (most recent call last):
File "<pyshell#123>", line 1, in <module>
jQuery %{'other_id' : choice_id, 'text_id' : text_choice_id }
ValueError: unsupported format character ''' (0x27) at index 15
一重引用符をエスケープした後:
>>> jQuery = ("$$(\'%(other_id)\').click(function() { "
" if ($$(this).is(\':checked\')) { "
" $$(\'%(text_id)\').show() "
" } "
" else {"
" $$(\'%(text_id)\').hide()"
" }"
" });")
>>> jQuery %{'other_id' : choice_id, 'text_id' : text_choice_id }
Traceback (most recent call last):
File "<pyshell#125>", line 1, in <module>
jQuery %{'other_id' : choice_id, 'text_id' : text_choice_id }
ValueError: unsupported format character ''' (0x27) at index 15
string.format()
文字列内に括弧があるため、試すことができません。'
サポートされていない形式の文字が表示され続けるのはなぜですか?