0

PythonでHTMLテーブルを作成しようとすると、次の構文エラーが発生します。誰かがここで問題を指摘できますか?

for i in range(len(PLlis)):
    print "i"
    print i
    outstring += "<tr>\n"
    outstring += "<td><a href="wikilinklis[i]">PLlist[0]</a></td>\n"
    outstring += "<td>build_locationlis[i]</td>\n"
    outstring += "<td>lis[i]</td>\n"
    outstring += "<td>Host_loc</td>\n"
    outstring += "<td>Baselis[i]</td>\n"
    outstring += "</tr>\n"
outstring += "</table>\n"
return outstring

構文エラー:-

   outstring += "<td><a href="wikilinklis[i]">PLlist[0]</a></td>\n"
                                     ^

SyntaxError:無効な構文

4

4 に答える 4

4

文字列を連結します。

outstring += "<td><a href=" + wikilinklis[i] + ">PLlist[0]</a></td>\n"

ifwikilinksは文字列のPython配列です。それ以外の場合は、引用符をエスケープする必要があります('wikilinks [i]'を文字列として書き込もうとしている場合)。

于 2012-11-04T19:45:54.183 に答える
2

wikilinklis [i]は反復ごとに変更されるため、このように文字列を再構築する必要があります。

outstring += "<td><a href=%s>%s</a></td>\n" % (wikilinklis[i], PLlist[0])
于 2012-11-04T19:46:33.043 に答える
0

Pythonには文字列補間が組み込まれていません。しかし、あなたは簡単にあなたが望むものを手に入れることができます"formatstring".format(...)

for i in range(len(PLlis)):
    print "i"
    print i
    outstring += """
    <tr>
        <td><a href="{wikilink}">{PLlist[0]}</a></td>
        <td>{build_location}</td>
        <td>{value}</td>
        <td>Host_loc</td>
        <td>{base}</td>
    </tr>""".format(
        wikilink=wikilinklis[i],
        build_location=build_locationlis[i],
        value=lis[i],
        base=Baselis[i]
    )

outstring += "</table>\n"
return outstring

三重引用符は、文字列を複数行にまたがらせる以外の意味はありません。

于 2012-11-04T20:17:13.437 に答える
0

あなたがしていることをしないでください。一連の文字列を連結する代わりに、値をテンプレートに代入する必要があります。

これを行う最も簡単な方法は、文字列と%演算子を使用することです。

"""
<tr>
<td><a href="%(wikilinklis)s">%(PLlist)s</a></td>
<td>%(build_locationlis)s</td>
</tr>
""" % {'wikilinks': 'http://foo', 'PLlist': 'A link' }

改行と引用符を埋め込むことができる三重引用符に注意してください。

于 2012-11-04T21:25:09.687 に答える