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 回答