Python 3.x python3-带{}符号的格式

Python 3.x python3-带{}符号的格式,python-3.x,Python 3.x,我对字符串有点问题 'replication = {\'class\' : \'NetworkTopologyStrategy\', \'datacenter1\' : {}};'.format(N) 为什么它会回来: replication = \{\'class\' : \'NetworkTopologyStrategy\', \'datacenter1\': {} };'.format(N) KeyError: "'class' " 格式化一个包含任意{}的字符串可能很麻烦 在这种

我对字符串有点问题

'replication = {\'class\' : \'NetworkTopologyStrategy\', \'datacenter1\' : {}};'.format(N)
为什么它会回来:

replication = \{\'class\' : \'NetworkTopologyStrategy\', \'datacenter1\': {} };'.format(N)  
KeyError: "'class' "

格式化一个包含任意
{}
的字符串可能很麻烦

在这种情况下,您需要用附加的
{}
来包围整个字符串,以便转义
{
}
,而
格式应该忽略它们:

N = 'xxx'
print('replication = {{\'class\' : \'NetworkTopologyStrategy\', \'datacenter1\' : {}}};'
      .format(N))

# replication = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : xxx};

如果您注意到,您实际上并没有转义字符。必须转义格式字符串中的文字
{
}
字符:
{{
}
谢谢。我通过“复制={'class\':'NetworkTopologyStrategy\',\''+data\u center\u name+'\':'+str(N)+'}解决了这个问题。但你的方式更漂亮