test = {
'test':'dd',
}
fo = 'test{test}{num}'
print(fo.format(**test))
이런 식으로 하면 에러가 납니다
하지만 방법 있습니다
default 값을 주는 방법입니다.
Default값 주는 방법
from string import Formatter
# .format형식 Default값 정의
class PartialFormatter(Formatter):
# missing은 없는 키 값 정의
# bad_fmt은 형식(타입 등)이 안맞을때 정의
def __init__(self, missing='', bad_fmt='(포맷형식이 잘못됨!!)'):
self.missing, self.bad_fmt=missing, bad_fmt
def get_field(self, field_name, args, kwargs):
# 찾을 수 없는 키 처리
try:
val=super(PartialFormatter, self).get_field(field_name, args, kwargs)
except (KeyError, AttributeError):
val=None,field_name
return val
def format_field(self, value, spec):
# 잘못된 형식(타입 등) 처리
if value==None: return self.missing
try:
return super(PartialFormatter, self).format_field(value, spec)
except ValueError:
if self.bad_fmt is not None: return self.bad_fmt
else: raise
# format에 사용되는 딕셔너리 정의
test = {
'test':'dd',
}
# format초기값
fo = 'test{test}{num}'
# format Default 초기화(초기값 : '')
fmt=PartialFormatter()
# 사용법
print(fmt.format(fo,**test))