क्या Python string.format का उपयोग करने का कोई तरीका है कि कोई अनुक्रमणिका अनुपलब्ध होने पर कोई अपवाद नहीं डाला जाता है, इसके बजाय एक खाली स्ट्रिंग डाली जाती है।पायथन स्ट्रिंग प्रारूप suppress/silent keyerror/indexerror
result = "i am an {error} example string {error2}".format(hello=2,error2="success")
यहाँ, परिणाम होना चाहिए:
"i am an example string success"
अभी, अजगर एक keyerror फेंकता है और स्वरूपण बंद हो जाता है। क्या इस व्यवहार को बदलना संभव है?
धन्यवाद
संपादित करें:
वहाँ Template.safe_substitute मौजूद है (यहां तक कि उस पैटर्न के बजाय कोई रिक्त स्ट्रिंग डालने की अक्षुण्ण छोड़ देता है), लेकिन सकता है नहीं कुछ String.Format
के लिए समान वांछित व्यवहार php में स्ट्रिंग प्रतिस्थापन के समान होगा।
class Formatter(string.Formatter):
def get_value(self,key,args,kwargs):
try:
if hasattr(key,"__mod__"):
return args[key]
else:
return kwargs[key]
except:
return ""
ऐसा वांछित व्यवहार प्रदान करता है।
तुम भी 'str.format_map() का उपयोग कर सकते' में [इस उत्तर] (http वर्णित के रूप में://stackoverflow.com/a/17215533/877069)। –