0

リストを読み込もうとしています。値は単一にすることも、複数のエントリをコンマで区切ることもできます。私の目標は、リストの最初の値のhrefリンクを追加することです。col[0]つまり、次のコンパイルエラーが発生します。

INPUT:-
cols=['409452,  12345', '', '', 'This a test python script']

EXPECTED OUTPUT:-
 <tr>
<td><a href=http://data/409452>409452,<a href=http://data/12345>12345</a></td>
<td></td>
<td></td>
<td>This a test python script</td>

Pythonコード:-

  cols=cols=['409452,  12345', '', '', 'This a test python script']

TEMPLATE = ['  <tr>']
for col in cols:
    value = col.split(",")  
    TEMPLATE.append(
        '    <td><a href=http://data/{}> {}</a></td>'.format(value)
TEMPLATE.append('  </tr>')
TEMPLATE = '\n'.join(TEMPLATE)
print TEMPLATE


Output I am getting:-


TEMPLATE.append('  </tr>')
       ^
SyntaxError: invalid syntax
4

2 に答える 2

3

実際のコードは表示されていません(そのサンプルには13行が含まれていないためですが、エラーメッセージには13行目にエラーが表示されています)。ただし、この場合、答えはかなり単純だと思います...この行をよく見てください。

TEMPLATE.append(
    '    <td><a href=http://data/{}> {}</a></td>'.format(value)

文字列を削除して、わかりやすくします。

TEMPLATE.append(''.format(value)

ご覧のとおり、クロージングがありません)

于 2012-11-15T03:42:40.967 に答える
2

他の人が言及した欠落に加えて、)フォーマットの使用は正しくありません(配列内のアイテムを検索するために使用する必要があり*valueます)。(colsの定義にも間違ったインデントがあり、余分なものがありcols=ます。)

このコードは機能します:

cols=['409452,  12345', '', '', 'This a test python script']

TEMPLATE = ['  <tr>']
for col in cols:
    if "," in col:
        value = col.split(",")
        value[:] = ['<a href=http://data/{0}>{0}</a>'.format(id.strip()) for id in value]
        col = ','.join(value)
    TEMPLATE.append('    <td>{}</td>'.format(col))
TEMPLATE.append('  </tr>')
TEMPLATE = '\n'.join(TEMPLATE)
print TEMPLATE

出力:

  <tr>
    <td><a href=http://data/409452>409452</a>,<a href=http://data/12345>12345</a></td>
    <td></td>
    <td></td>
    <td>This a test python script</td>
 </tr>
于 2012-11-15T03:48:55.380 に答える