2013-11-14 5 views
-1

에 어떤 생각을 포맷 문자열 중 변환 모든 인수 :형식 오류 :이 errror-메시지가 왜 파이썬

editResponsHtml """ % (person, pId) 
TypeError: not all arguments converted during string formatting? 

코드 :

def editRespons(form): 
    global FAMILYTREE 

    FAMILYTREE.editPerson(int(form.getvalue("id").decode('latin-1')), form.getvalue("firstName").decode('latin-1'), form.getvalue("lastName").decode('latin-1'), form.getvalue("bYear").decode('latin-1'), form.getvalue("dYear").decode('latin-1'), form.getvalue("mom").decode('latin-1'), form.getvalue("dad").decode('latin-1')) 
    person = FAMILYTREE.getPerson(form.getvalue("id")) 

    return editResponsHtml(person, person.fid) 


def editResponsHtml(person, pId): 
    return u"""<p>%s sparades!</p> 
    """ % (person, pId) 

답변

2

당신이 포맷 두 값을 전달하는, 그러나 하나만 슬롯을 지정하십시오.

슬롯 수와 매개 변수 수는 일치해야합니다. 어느 pId에 대한 슬롯을 추가하거나 튜플에서 제거 :

def editResponsHtml(person, pId): 
    return u"""<p>%s %s sparades!</p> 
    """ % (person, pId) 

def editResponsHtml(person, pId): 
    return u"""<p>%s sparades!</p> 
    """ % (person,) 

또는 사용이라는 슬롯과 사전 :

def editResponsHtml(person, pId): 
    return u"""<p>%(person)s sparades!</p> 
    """ % {'person': person, 'pId': pId} 

되지 않는 키에 대해 불평하지 않습니다.

0
return u"""<p>%s sparades!</p> 

"" "% (사람, PID)

당신은 하나 개의 형식 지정자 (%s)하지만 두 개의 값이 있습니다 personpId을, 당신은 pId에 대한 %d처럼 지정이없는

.
관련 문제