문제

유니 코드 문자열로 수락 된 몇 가지 이메일 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 %}

이렇게하면 당신 (또는 디자이너)은 레이아웃을 훨씬 더 많이 제어 할 수 있습니다.

살펴보십시오 템플릿 문서 자세한 사항은.

다른 팁

파이썬에서 :

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

Bare HTML에서는 불가능합니다 ... JavaScript를 사용해야합니다.

나는 어떤 파이썬도 모른다 u-마커와 단일 따옴표 쇼는 실제로 목록 멤버에 잘못된 방식으로 액세스하고 있음을 나타내지 않습니까?

각 항목이 아닌 전체 목록을 인쇄하고 있으며 출력은 저에게 디버그 정보처럼 보입니다. 이러한 디버그 정보는 다른 버전이나 Python 구성에서 매우 다르게 보일 수 있습니다. 그래서 나는 파이썬을 모른다. 나는 말할 것이다 : 당신은 그것을 구문 분석하지 말아야한다.

사용 Liori의 대답 실제로는 그렇지 않습니다 하락 그만큼 u-마커이지만 목록의 항목이 개별적으로 액세스되도록하여 일부 디버그 정보가 아닌 실제 값을 제공합니다. 당신은 또한 약간의 루프를 사용하여 동일하게 달성 할 수 있습니다. join 코드를 훨씬 쉽게 만듭니다).

"[{0}]".format(", ".join(python_email_list))

Python 2.6 Format () 메소드에서는 선호하는 문자열 형식입니다. 문서 여기.

그것은 모두 HTML 생성이 당신을 어떻게 처리하는지에 달려 있습니다. 가치 정렬. 유니 코드 문자열을 직렬화하기 위해 일반적으로하는 일은 다음과 같습니다.

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) + ' ]')

Option 2:

myStr = '[ ' + ', '.join(ss) + ' ]'
myStr = myStr.encode(<whatever encoding you want>, <whatever way of handling errors you wish to use>)

나는 Python Pre-Version 3에 익숙하지 않으므로 추가 문자열에 필요한지 확실하지 않습니다. u 접두사 또는 암시 적 변환 인 경우.

이것은 실제로 길고 형식의 주석입니다 마지막 답변. 아직도 파이썬을 모르는데, 나는 사용하지 않아 조금 실망합니다. 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) 더 많은 작업이 필요하지만 각 항목 사이에 동일한 분리기를 인쇄하는 것은 전혀 복잡하지 않아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top