删除在HTML输出的统一标志
-
10-07-2019 - |
题
我有持有接受Unicode字符串几个电子邮件ID Python列表:
[u'one@example.com',u'two@example.com',u'three@example.com']
此被分配给values['Emails']
和传递values
呈现为html。
在HTML呈现为这样:
电子邮件:[u'one @ example.com 'u'two @ example.com',u'three @ example.com']
我想它是这样的:
电子邮件:[one@example.com,two@example.com,three@example.com]
我如何能做到这一点的服务器脚本? 有一个简单的方法在HTML本身?
要实现这一目标解决方案
为你做这将是遍历你的电子邮件列表的最简单方法。例如
{% for email in Emails %}
email,
{% endfor %}
此方式,你(或设计者)将具有该布局的更多的控制。
有一个看看模板文档更多的细节。
其他提示
在的Python:
'[%s]' % ', '.join(pythonlistwithemails)
在裸露的HTML是不可能的......你必须使用JavaScript。
我不知道任何Python,但如果这些u
- 标记和单引号表示,并不实际表明您正在访问的列表成员以错误的方式?
您要打印整个列表,而不是每个项目,输出看起来像调试信息给我。这样的调试信息很可能看在Python中的另一个版本或配置不同。所以,虽然我不知道Python的,我会说:你不应该试图解析
使用 liori的回答实际上并不降在join
- 标记,但可确保从列表中的项目被单独访问,它给你的真正价值,而不是一些调试信息。你也可以使用一些循环来达到同样的(虽然<=>使得代码更容易)。
"[{0}]".format(", ".join(python_email_list))
从Python的2.6格式()方法是字符串格式化的首选方式。 文档这里。
这完全取决于该HTML生成是如何处理的值阵列。这里是你平时做的序列化unicode字符串:
In [550]: ss=u'one@example.com'
In [551]: print ss # uses str() implicitly
Out[552]: one@example.com
In [552]: str(ss)
Out[552]: 'one@example.com'
In [553]: repr(ss)
Out[553]: "u'one@example.com'"
如果你有信心的值的只包含ASCII字符串,只是使用的 STR()的对数值。如果不确定,使用显式编码等
ss.encode('ascii', error='replace')
在模板
[ {{ email_list|join:", " }} ]
注:[和]是字面方括号中,不代码:)
选项1:
myStr = str('[ ' + ', '.join(ss) + ' ]')
选项2:
myStr = '[ ' + ', '.join(ss) + ' ]'
myStr = myStr.encode(<whatever encoding you want>, <whatever way of handling errors you wish to use>)
我不习惯到Python 3之前的版本,所以我真的不知道该附加字符串是否需要u
前缀或者如果它是一个隐式转换。
这实际上是对的最后一个长期和格式化的评论回答。不过不知道任何的Python,我有点不使用join
让每一个地址之间的逗号(像的建议通过liori)。有一些空间的更换逗号感觉就像走在问题了,而不是要学什么的人。我们不会在堆栈溢出这里牺牲质量! ; - )
我只是打在我的Mac以下内容:
$ python Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> lst = [ u'one@example.com', u'two@example.com', u'three@example.com' ] >>> print lst [u'one@example.com', u'two@example.com', u'three@example.com'] >>> print ', '.join(lst) one@example.com, two@example.com, three@example.com >>> print 'Emails: [%s]' % ', '.join(lst) Emails: [one@example.com, two@example.com, three@example.com] >>> lst = [ u'one@example.com' ] >>> print lst [u'one@example.com'] >>> print ', '.join(lst) one@example.com >>> print 'Emails: [%s]' % ', '.join(lst) Emails: [one@example.com] >>> s = u'one@example.com' >>> print s one@example.com >>> print ', '.join(s) o, n, e, @, e, x, a, m, p, l, e, ., c, o, m
让我感觉良好......现在,使用的最后一个项目不同的分隔符(的像 one@example.com,two@example.com 和强> three@example.com )将需要一些更多的工作,但打印每个项之间的非常相同的分离器不应该在所有复杂的。