msg = '{"event":"addChannel","channel":"ok_sub_spot{currency}_{market}_trades"}'
print msg.format(**{'currency': 'usd', 'market': 'btc'})
我想格式化这个,但是我收到了错误。
Traceback (most recent call last):
File "/Users/wyx/bitcoin_workspace/fibo/tests/t_ws.py", line 21, in <module>
print msg.format(**{'currency': 'usd', 'market': 'btc'})
KeyError: '"event"'
我甚至不知道为什么会收到此错误。
答案 0 :(得分:3)
格式字符串{
和}
是保留字符,表示您要替换的组。如果您确实想要字符串中的任何一个字符,则需要将它们加倍,如{{
和}}
,如下所示:
>>> msg = '{{"event":"addChannel","channel":"ok_sub_spot{currency}_{market}_trades"}}'
>>> print msg.format(**{'currency': 'usd', 'market': 'btc'})
{"event":"addChannel","channel":"ok_sub_spotusd_btc_trades"}
答案 1 :(得分:1)
您可以使用
msg = "{"+'{"event":"addChannel","channel":"ok_sub_spot{currency}_{market}_trades"}'+"}"
否则,它将被解释为"event"
作为密钥。