2010-07-09 75 views
0

我写HTML文本文件,然后通过浏览器阅读,但我得到一个错误,指出“不串中转换的所有参数格式”Python和HTML:未转换为字符串的所有参数

但我看不到我会出错。

z.write('<td><a href=/Plone/query/species_strain?species=%s>'+k+'</td>' % k) 

回答

4

你缺少括号:

z.write(('<td><a href=/Plone/query/species_strain?species=%s>'+k+'</td>') % k) 

但它会更好,不要混用级联和格式。所以考虑:

'<td><a href=/Plone/query/species_strain?species=%(k)s>%(k)s</td>' % {'k': k} 

您可能需要使用专用的工具来生成HTML。连接字符串往往会导致错误,并且很难解析HTML。

5

您正在使用字符串连接与替换。您的替代格式化程序%s位于第一个字符串中,但% k适用于最后一个字符串。你应该这样做:

'<td><a href=/Plone/query/species_strain?species=%s>%s</td>' % (k,k) 

或者这样:

('<td><a href=/Plone/query/species_strain?species=%s>'+k+'</td>') % k 
0

你错了,并结合+和字符串通过%格式化。如果k包含任何% - 次序就应该是这样的:

'<td...species=%s>...%s...</td>' % k 

你得到两个或多个%-sequences只有一个参数。你可能想这个:

'...species=%s>%s</td>' % (k, k) 
0

%K必须是字符串%s的

 
z.write('<td><a href=/Plone/query/species_strain?species=%s>' % k +k+'</td>') 

或更好

 
z.write('<td><a href=/Plone/query/species_strain?species=%s>%s</td>' % (k, k))