无法正确生成HTML代码

时间:2012-11-15 03:36:32

标签: python html

我正在尝试读取列表,值可以是单个,也可以有逗号分隔的多个条目,我的目标是为列表中的第一个值附加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

2 个答案:

答案 0 :(得分:3)

您尚未向我们展示您的实际代码(因为该示例中没有13行,但您的错误消息显示第13行上的错误)。但是,在这种情况下,我认为答案相当简单......仔细看看这一行:

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

删除字符串使其更明显:

TEMPLATE.append(''.format(value)

正如您所看到的,您错过了结束)

答案 1 :(得分:2)

除了其他人提到的遗失)之外,您对格式的使用不正确(need to use *value to have it look for items in the array)。 (您对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>