Python 如何在联接后附加到模板

Python 如何在联接后附加到模板,python,Python,我对如何做到这一点缺乏想法?我真的需要一些帮助…我试图根据输入XML文件生成HTML代码,但遇到属性错误,问题是我使用的是TR_TEMPLATE='\n'。joinTR_TEMPLATE会变成字符串,稍后我的代码会尝试附加TR_TEMPLATE.append'{}'.formatcol,这导致了一个错误..首先我无法删除联接,如何继续 我的代码:- http://pastie.org/5390303 输入如下 http://pastie.org/5390316 预期产出:- http

我对如何做到这一点缺乏想法?我真的需要一些帮助…我试图根据输入XML文件生成HTML代码,但遇到属性错误,问题是我使用的是TR_TEMPLATE='\n'。joinTR_TEMPLATE会变成字符串,稍后我的代码会尝试附加TR_TEMPLATE.append'{}'.formatcol,这导致了一个错误..首先我无法删除联接,如何继续

我的代码:-

    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'

这里至少有四种可能性,从最简单、可能最好到最可怕

首先,您可以只废弃第26行。虽然你说我首先不能删除连接,但似乎没有什么好的理由

最终保证在第33行将其连接起来,在此之前,除了附加更多字符串外,您永远不会使用该值。那么,为什么26号线在那里

其次,您可以从以下内容更改第26行:

TR_TEMPLATE = '\n'.join(TR_TEMPLATE)
为此:

TR_TEMPLATE = ['\n'.join(TR_TEMPLATE)]
换句话说,与其将它从一个字符串列表展平到一个字符串,不如将它从一个字符串列表展平到一个字符串列表,然后您可以继续将更多字符串附加到该列表并再次展平

第三,首先可以将tru模板设置为字符串而不是列表。更改第13行以省去括号。然后,无论在哪里调用TR_TEMPLATE.appendfoo,只需执行TR_TEMPLATE+=foo+'\n'。然后,您可以废弃第26行,并更改第33行,以删除多余的尾随“\n”,而不是合并


最后,您可以跟踪是否已经加入了tru模板,如果还没有加入,则添加,如果有,则连接。或者,您可以使用类型切换,而不是跟踪,但这会使它更加丑陋。

为什么不能首先删除连接?如果您可以尽可能长时间地将内容保存在列表中,然后在最后转换为字符串,这将更简单,也可能更高效,但这并不重要。另外,为什么对合并的字符串使用与原始列表相同的变量名?如果你使用不同的变量,阅读起来会更容易?@abarnert-如果我这样做,我就得不到正确的输出。请查看我的当前输出和预期输出。好吧,你得不到正确的输出或任何这样的输出。你凭什么认为这能解决问题?PS,为什么第23行的href没有引号?您能否显示实际生成不正确输出的代码,而不是一个甚至没有那么远的不同版本?@abarnert-以下是确切的代码,当我针对上面给出的输入在该URL上运行代码时,我得到一个KeyError:'CR FA CL Title on line 37 CRstrings.appendTR_TEMPLATE.formatCR=items[0],*items[1:]。您确定运行的代码与生成错误的代码相同吗?同时,再一次,是什么让你认为在第26行添加一个连接可以解决你遇到的任何问题?如何删除这篇文章?