我如何格式化dict的json

时间:2017-08-19 05:14:28

标签: python json

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

我甚至不知道为什么会收到此错误。

2 个答案:

答案 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"作为密钥。