フォーマットルールが破られています。あなたはフォーマットPython looks for the following
"{" [field_name] ["!" conversion] [":" format_spec] "}"
を使用する場合{
が、その前にあり、それの後:
ので、通常だからあなたの場合には"message"
は、FIELD_NAMEになります。これは明らかに機能しません。 .format()
メソッドは、複雑なネストされたテキスト構造では使用されません。
>>> tmpl = string.Template('{"message":"message_test", "subscription_info": {$subscription_info} }')
>>> tmpl.substitute(subscription_info=subscription_info)
'{"message":"message_test", "subscription_info": {{"endpoint":"xxx","keys":{"p256dh":"xxx","auth":"xxx"}}} }'
を、また、ネストされたテキストの構造に使用されるものではないが:
一つの方法は、代わりにstring.Template
together with .substitute
を使用することです。
あなたはJSONを使用しているので、代わりにparse and serialize the JSONを入力する必要があります。
>>> import json
>>> subscription_info = {"endpoint":"xxx","keys":{"p256dh":"xxx","auth":"xxx"}}
>>> send_data = {"message":"message_test", "subscription_info": subscription_info }
>>> json.dumps(send_data)
'{"subscription_info": {"endpoint": "xxx", "keys": {"auth": "xxx", "p256dh": "xxx"}}, "message": "message_test"}'
それはクリーンで安全な方法である:これは、問題を処理するための適切な方法です。
どのように連結していますか? –