我收到以下錯誤,該如何修復它?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