NIKHIL RANE NIKHIL RANE - 5 months ago 18
Python Question

Use .format with string dictonary

I want to use my dictionary parameter in my string
Here is my dictionary

a = {"first_name": "ABC", "last_name": "PQR"}


Following statement gives correct output

"{first_name}{last_name}".format(**a)


But I want following output

"{ Hello {first_name} {last_name}.}".format(**a)
>>> '{ Hello ABC PQR.}'


It gives keyerror

KeyError Traceback (most recent call last)
<ipython-input-50-84fc42fb81f2> in <module>()
----> 1 "{ Hello {first_name} {last_name}.}".format(**a)

KeyError: ' Hello {first_name} {last_name}'

Answer

You can enter literal braces by doubling them:

>>> a = {"first_name": "ABC", "last_name": "PQR"}
>>> "{{ Hello {first_name} {last_name}.}}".format(**a)
'{ Hello ABC PQR.}'