-3

我对如何做到这一点缺乏想法?我真的需要一些帮助...我正在尝试根据输入 XML 文件生成 HTML 代码并遇到属性错误,问题是我正在使用“TR_TEMPLATE = '\ n'.join(TR_TEMPLATE)" 成为一个字符串,稍后我的代码再次尝试附加导致错误的 "TR_TEMPLATE.append(' {{}}'.format(col))" ..我无法删除首先加入,我该如何进行?

我的代码:-

    http://pastie.org/5390303

输入如下

http://pastie.org/5390316

预期输出:-

http://pastie.org/5390312

属性错误

Traceback (most recent call last):
 File "C:\Dropbox\scripts\test.py", line 54, in <module>
crInfo = CRlistToTable(CRlist)
File "C:\Dropbox\scripts\test.py", line 31, in CRlistToTable
TR_TEMPLATE.append('    <td>{{}}</td>'.format(col))
AttributeError: 'str' object has no attribute 'append'
4

1 回答 1

0

这里至少有四种可能性,按照从最简单和可能最好到最噩梦的顺序排列。

首先,您可以废弃第 26 行。尽管您说“我一开始就无法删除联接”,但似乎没有任何充分的理由。

你最终保证在第 33 行加入它,并且在此之前你永远不会使用该值,除了附加更多字符串。那么,为什么会有第 26 行呢?

其次,您可以从此更改第 26 行:

TR_TEMPLATE = '\n'.join(TR_TEMPLATE)

对此:

TR_TEMPLATE = ['\n'.join(TR_TEMPLATE)]

换句话说,不是将它从字符串列表展平为单个字符串,而是将其从字符串列表展平为一个字符串的列表 - 然后您可以继续附加更多字符串并再次展平。

第三,您可以首先创建TR_TEMPLATE一个字符串而不是列表。更改第 13 行以省略括号。然后,无论你打电话TR_TEMPLATE.append(foo),而不是只是做TR_TEMPLATE += foo + '\n'。然后,您可以废弃第 26 行,并将第 33 行更改为仅删除多余的尾随 '\n' 而不是加入。

最后,您可以跟踪您是否已加入TR_TEMPLATE,如果尚未加入,append则连接如果已加入。(或者,您可以使用类型切换来代替跟踪,但这会使它更加丑陋。)

于 2012-11-17T01:13:19.387 回答