Pythonで配列から自動的にHTMLテーブル(表)を作る方法
WordPressで最近テーブルを作ることが多いので、Pythonで自動的にテーブルのコードが作れないか、検討してみました。自分で1から考えたコードは下記になります。汚いですね。しかもかなり適当なコメントです。
正直、公開するか悩みましたが、自分の実力を後悔する為に、公開します。
ちなみに、もっと簡単で分かりやすい方法もありましたので、賢い方法も公開します、
#自力で考えたダメなコード
th_List = ["no","name","etc"]
td_list1 = ["1","apple","good"]
td_list2 = ["2","orange","best"]
td_list3 = ["3","hogehoge","hohohohoho"]
def make_html_table3(thList,tdlist1,tdlist2,tdList3):
code = "<table>\r\n" + "\t<tr>" + "\r\n"
# Set th tags
for list in thList:
code = code + "\t\t<th>" + list + "</th>" + "\r\n"
code = code +"\t</tr>"+ "\r\n"
# Set data1
code = code + "\t<tr>" + "\r\n"
for list in tdlist1:
code = code + "\t\t<td>" + list + "</td>" + "\r\n"
code = code +"\t</tr>" + "\r\n"
# Set data2
code = code + "\t<tr>" + "\r\n"
for list in tdlist2:
code = code + "\t\t<td>" + list + "</td>" + "\r\n"
code = code +"\t</tr>" + "\r\n"
# Set data3
code = code + "\t<tr>" + "\r\n"
for list in tdList3:
code = code + "\t\t<td>" + list + "</td>" + "\r\n"
code = code +"\t</tr>" + "\r\n"
# End table
code = code + "</table>" + "\r\n"
return code
out = make_html_table3(th_List,td_list1,td_list2,td_list3)
print(out)
Code language: PHP (php)
Pandasを利用した美しいコード
pandasを利用すれば10行程度で同様のコードを作成出来ました。
自分の3時間は何だったのでしょうか・・・・・
まぁ、人生そんなもんですよね。
初めからGoogleで検索すればもっと効率良く出来ましたが
自分の頭で考えることって重要だよね??
import pandas as pd
data = ["100","200","300"]
name_list = ["orange","apple","meron"]
etc_list = ["bad","good","best"]
df = pd.DataFrame()
df["Data"] = data
df['Name'] = name_list
df['etc'] = etc_list
result = df.to_html()
print(result)
Code language: JavaScript (javascript)
to_htmlは最強ですね。
シンプルだし分かりやすい。
ちなみに出力結果はこちら
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Name</th>
<th>Value</th>
<th>etc</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>orange</td>
<td>100</td>
<td>bad</td>
</tr>
<tr>
<th>1</th>
<td>apple</td>
<td>200</td>
<td>good</td>
</tr>
<tr>
<th>2</th>
<td>meron</td>
<td>300</td>
<td>soso</td>
</tr>
</tbody>
</table>
Code language: HTML, XML (xml)
Name | Value | etc | |
---|---|---|---|
0 | orange | 100 | bad |
1 | apple | 200 | good |
2 | meron | 300 | soso |
Pythonでテーブルのタグを作る時は是非参考にしてみて下さい。