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"'


我什至不知道为什么会收到这个错误。

最佳答案

格式字符串{}是保留字符,指示您要替换的组。如果您实际上希望在字符串中使用这些字符中的任何一个,则需要将它们加倍,如{{}},如下所示:

>>> 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"}

关于python - 我如何格式化dict的json,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45767927/

10-12 07:13