-1

このエラーメッセージが表示される理由:

    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)
4

2 に答える 2

2

フォーマットするために 2 つの値を渡していますが、指定するスロットは1 つだけです。

スロット数とパラメーターの数は一致する必要があります。タプルにスロットを追加するか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}

未使用のキーについて文句を言うことはありません。

于 2013-11-14T12:45:31.977 に答える
0
return u"""<p>%s sparades!</p>

""" % (人、pId)

1 つの書式指定子 ( %s) がありますが、2 つの値があります: personand 、 forpIdのような指定子はありません。%dpId

于 2013-11-14T12:47:07.800 に答える