Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Html输出中删除Unicode标记_Python_Html_Django_Unicode_Html Lists - Fatal编程技术网

Python 在Html输出中删除Unicode标记

Python 在Html输出中删除Unicode标记,python,html,django,unicode,html-lists,Python,Html,Django,Unicode,Html Lists,我有一个python列表,其中包含一些作为unicode字符串接受的电子邮件ID: [u'one@example.com',u'two@example.com',u'three@example.com'] 这被分配给值['Emails'],并将值作为html传递给呈现。 Html呈现如下所示: 电子邮件:[u'one@example.com‘你’two@example.com‘你’three@example.com“] 我希望它看起来像这样: 电邮:[one@example.com, two@

我有一个python列表,其中包含一些作为unicode字符串接受的电子邮件ID:

[u'one@example.com',u'two@example.com',u'three@example.com']
这被分配给值['Emails'],并将值作为html传递给呈现。 Html呈现如下所示:

电子邮件:[u'one@example.com‘你’two@example.com‘你’three@example.com“]

我希望它看起来像这样:

电邮:[one@example.com, two@example.com, three@example.com]

如何在服务器脚本中执行此操作? 有没有一种简单的方法可以在HTML本身中实现这一点?

在Python中:

'[%s]' % ', '.join(pythonlistwithemails)
在纯HTML中,这是不可能的。。。您必须使用javascript。

在Python中:

'[%s]' % ', '.join(pythonlistwithemails)

在纯HTML中,这是不可能的。。。您必须使用javascript。

这完全取决于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')

这完全取决于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')

我不知道任何Python,但是如果那些u形标记和单引号显示出来,这是否实际上表明您以错误的方式访问列表成员

您正在打印整个列表,而不是每个项目,并且输出在我看来就像调试信息。在Python的另一个版本或配置中,这样的调试信息看起来可能非常不同。所以,尽管我不懂Python,但我想说:您不应该尝试解析它


使用不会实际删除u标记,但可以确保单独访问列表中的项目,这将为您提供真实值,而不是一些调试信息。您也可以使用一些循环来实现相同的功能,尽管连接使代码变得更容易。

我不知道任何Python,但是如果这些u形标记和单引号显示出来,这是否实际上表明您以错误的方式访问列表成员

您正在打印整个列表,而不是每个项目,并且输出在我看来就像调试信息。在Python的另一个版本或配置中,这样的调试信息看起来可能非常不同。所以,尽管我不懂Python,但我想说:您不应该尝试解析它

使用不会实际删除u标记,但可以确保单独访问列表中的项目,这将为您提供真实值,而不是一些调试信息。您也可以使用一些循环来实现相同的功能,尽管联接使代码更加容易。

选项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前缀,或者它是否是隐式转换。

选项1:

myStr = str('[ ' + ', '.join(ss) + ' ]')
"[{0}]".format(", ".join(python_email_list))
备选案文2:

myStr = '[ ' + ', '.join(ss) + ' ]'
myStr = myStr.encode(<whatever encoding you want>, <whatever way of handling errors you wish to use>)
我不习惯Python版本3之前的版本,所以我不确定附加字符串是否需要u前缀,或者它是否是隐式转换

"[{0}]".format(", ".join(python_email_list))
从Python2.6开始,格式化方法是字符串格式化的首选方式。 医生

从Python2.6开始,格式化方法是字符串格式化的首选方式。
文档。

对你来说,最简单的方法就是反复浏览你的电子邮件列表。e、 g

{% for email in Emails %}
email,
{% endfor %}
这样,您或设计师将对布局有更多的控制


查看以了解更多详细信息。

最简单的方法是反复查看您的电子邮件列表。e、 g

{% for email in Emails %}
email,
{% endfor %}
这样,您或设计师将对布局有更多的控制

有关更多详细信息,请查看模板中的。

[ {{ email_list|join:", " }} ]
注意:[、和]是文本方括号,而不是模板中的代码:

[ {{ email_list|join:", " }} ]

注意:[、和]是文字方括号,而不是代码:

这实际上是一个很长的格式注释。我仍然不懂Python,但对于没有像liori那样使用join在每个地址之间获取逗号,我感到有点失望。用一些空格替换逗号感觉就像是从问题中走出来,并且不会向任何人学习任何东西。我们不会在堆栈溢出时牺牲质量-

我刚刚在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将需要更多的工作,但在每个项目之间打印相同的分隔符应该一点也不复杂。

这实际上是一个很长的格式注释。我仍然不懂Python,但对于没有像liori那样使用join在每个地址之间获取逗号,我感到有点失望。用一些空格替换逗号感觉就像是从问题中走出来,并且不会向任何人学习任何东西。我们不会在堆栈溢出时牺牲质量-

我刚刚在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 对我来说很有意义。。。现在,使用不同的

最后一项的ent分隔符one@example.com, two@example.com和three@example.com将需要更多的工作,但在每个项目之间打印相同的分隔符应该一点也不复杂。

我想说:不建议在HTML或JavaScript中尝试这一点,除非表示整个列表的字符串被记录为在所有版本的Python中都是这样的…?实际上,使用这个字符串格式习惯用法会给您留下一个很长的unicode字符串:u'one@example.com,two@example.com,three@example.com'. - 不完全是OP想要的。@ThomasH,那么上面评论中的连接字符串是否也包含u'..'调试信息?我不知道任何Python,但是在您自己的回答中,str被称为隐式调用,那么为什么不在liori的回答中呢?我猜OP隐式调用repr。然后好吧,OP可能应该改变这一点。您可以在django模板中使用联接筛选器。。。事实上,我只是把它作为一个答案加上;我想说:不建议在HTML或JavaScript中尝试这一点,除非表示整个列表的字符串在所有版本的Python中都是这样记录的…?实际上,使用这个字符串格式习惯用法会给您留下一个很长的unicode字符串:u'one@example.com,two@example.com,three@example.com'. - 不完全是OP想要的。@ThomasH,那么上面评论中的连接字符串是否也包含u'..'调试信息?我不知道任何Python,但是在您自己的回答中,str被称为隐式调用,那么为什么不在liori的回答中呢?我猜OP隐式调用repr。然后好吧,OP可能应该改变这一点。您可以在django模板中使用联接筛选器。。。事实上,我只是把它作为一个答案加上*u“…”*是Python unicode字符串的打印表示形式。它只是表明底层字符串是unicode字符串,这是很好的,并且在将它们序列化为文件、屏幕、字节字符串表示形式等之后,必须小心。。我同意你的看法,列表在这里并不重要,应该注意的是单个字符串,正如我在我的>>中所概述的那样,“*u'…”*是Python unicode字符串的打印表示形式。它只是表明底层字符串是unicode字符串,这是很好的,并且在将它们序列化为文件、屏幕、字节字符串表示形式等之后,必须小心。。我同意你的看法,列表在这里并不重要,正如我在>中概述的那样,应该注意的是单个字符串。这肯定会在输出中给你一个多余的逗号?谢谢。此客户端解决方案使用以下修改。{%for email%}{email | escape}{%endfor%}在这个问题上,他说他希望在电子邮件地址之间使用逗号。亲爱的anteatresa,问题的关键是删除unicode指示符,如果可能的话,在html本身上解决它。在两者之间加一个逗号是个不错的选择。我可以在这方面再努力一点,并取得同样的成就。在上面提到的改进解决方案中,您的建议是使用,这样简单for循环就不会在最后一个列表项后给我逗号。再次感谢@Antatersa,但您的解决方案不也会在最后一个地址后打印逗号吗@Sharma Anil,我觉得使用join在电子邮件地址之间获得逗号,而不是在最后一个地址之后,是一个更简单的解决方案。在我看来,任何东西都比使用要好得多——只考虑如果地址的长度太长,不能适应浏览器中的单行线会发生什么。这肯定会给你一个输出中多余的逗号。谢谢。此客户端解决方案使用以下修改。{%for email%}{email | escape}{%endfor%}在这个问题上,他说他希望在电子邮件地址之间使用逗号。亲爱的anteatresa,问题的关键是删除unicode指示符,如果可能的话,在html本身上解决它。在两者之间加一个逗号是个不错的选择。我可以在这方面再努力一点,并取得同样的成就。在上面提到的改进解决方案中,您的建议是使用,这样简单for循环就不会在最后一个列表项后给我逗号。再次感谢@Antatersa,但您的解决方案不也会在最后一个地址后打印逗号吗@Sharma Anil,我觉得使用join在电子邮件地址之间获得逗号,而不是在最后一个地址之后,是一个更简单的解决方案。在我看来,任何事情都比使用要好得多——只需考虑如果地址的长度太长,无法适应浏览器中的一行,将会发生什么。非常感谢各位朋友的建议。在客户端,真正对我的解决方案有效的方法如下。[{%for email%}{email | escape}{%endfor%}]特别感谢anteatersa!致以热烈的问候。这很好,但在您的解决方案中,您要求的地址之间的逗号在哪里?
此外,我不会称之为客户端。这个Python代码仍然在服务器上运行,对吗?请接受一个答案,表明问题已经解决。非常感谢我所有的朋友尝试提出解决方案。在客户端,真正对我的解决方案有效的方法如下。[{%for email%}{email | escape}{%endfor%}]特别感谢anteatersa!致以热烈的问候。这很好,但在您的解决方案中,您要求的地址之间的逗号在哪里?此外,我不会称之为客户端。这个Python代码仍然在服务器上运行,对吗?请接受一个答案,表明问题已经解决。