我收到以下错误,该如何修复它?Python:三倍双引号字符串格式
KeyError异常: 'A' 过程完成,退出代码为1
s = """
a b c {a}
""".format({'a':'123'})
print s
我收到以下错误,该如何修复它?Python:三倍双引号字符串格式
KeyError异常: 'A' 过程完成,退出代码为1
s = """
a b c {a}
""".format({'a':'123'})
print s
您需要通过名称.format(a=123)
在参数传递或使用format_map
其预计的字典:
s = """
a b c {a}
""".format_map({'a':'123'})
我从来不知道'format_map' O.o很高兴知道! – Wondercricket
如果映射只是一个普通的字典,那么使用'format_map'就没什么意义了。 – wim
@wim这是正确的,但如果你有一个字典,为什么解开它并将它传递给格式,当你也可以使用'format_map'? – MSeifert
命名格式变量必须通过名字传递:
>>> s = """
... a b c {a}
... """.format(a=123)
>>> print(s)
a b c 123
如果您提供的数据的字典,您可以“解开”名称:
>>> d = {'a': 123}
>>> s = """
... a b c {a}
... """.format(**d)
>>> print(s)
a b c 123
如果你使用Python 3.6,另一个选择是使用f-字符串。 –
这只是一个选项,如果数据来自范围内的名称。 – wim
您正在使用字符串format
方法不正确。 format
要求您在要替换字符串内的名称时传递关键字参数。
正确的形式来使用你的情况的方法是如下:
s = """
a b c {a}
""".format(a='123')
print s
但是,如果你想在字典中传递,那么你可以通过之前的前面加上**
解压到关键字参数字典本身。这将像上面的代码一样将字典解压缩到a='123'
的关键字参数中。
请阅读有关Python字符串和字符串格式方法here的更多信息。
'格式'采用关键字参数,而不是字典。 – user2357112
或者你可以解开你的'dict','** {'a':'123'}' – Wondercricket