python 3.4에서 fiddly html 테이블을 만드는 데 문제가 있습니다. templater는 html 1.16입니다. 다음은 문제의 단순화 된 버전입니다. 목록을 탐색하고 싶습니다. 각 목록 항목에 대해 html 테이블에 데이터를 쓰고 싶습니다. 테이블은 2 열 너비가 있어야합니다.html templater로 연결할 수없는 코드 블록 (파이썬에서)
from html import HTML
#create html object
h = HTML()
comments=["blah1",
"blah2",
"blah3"
]
#create table object
c_table = h.table.tbody
for i, comment in enumerate(comments):
#create row if we are at an odd index
if i % 2 != 0:
row = c_table.tr
row.td(comment)
else:
#it is intended to add another <td> to the current row here
#but because the row was declared in the if block, it is out of scope
row.td(comment)
#write the html output now
print(h)
어려움은 특히, templater 함께 다음 </tr>
종료 태그시키지 않고 로우의 제 2 셀의 행 오브젝트 액세스. row
개체를 통해 새 셀을 만들어야합니다. 그렇지 않으면 c_table.tr.td
을 호출하면 행이 </tr>
으로 닫히고 새 셀이 시작됩니다.
이러한 상황에서 내가하려는 일을 성취하는 모든 코드 속임수를 영리하게 생각할 수 있습니까?
당신의 대답은 것 같다 부정확하다. 블록에서'row.td (comment)'를 제거하고 else 블록을 제거하면'NameError : name '행이'정의되지 않음 '을 얻습니다. 마찬가지로 코드를 그대로 실행하면 마찬가지입니다. 샘플 코드는 통역사에게 직접 붙여 넣을 수 있어야합니다 ... – Escher
논리가 잘못 되었기 때문입니다. 인덱스는 0부터 시작하므로, 처음으로 루프 'i % 2'을 통해 0이되고 행이 정의되지 않습니다. '! ='를'=='로 변경해야합니다. –
알았어. 내 얼굴에 거대한 facepalm. 다니엘 고마워. – Escher