我试图从python列表中创建订单列表项目(<ol></ol>
)。 我的情况如下表所示:如何从python列表中生成订单列表项目
listItem = [
['101','Dashboard'],
['102','Potential Customer'],
['102-01','Potential Customer Activity'],
['102-02','Potential Customer Report'],
['102-99','Potentail Customer Detail'],
['102-99-01','Potential Customer Detail Listing'],
['102-99-02','Potential Customer Follow Up'],
['102-99-02-01','Follow Up PAR']
]
从这个名单,我希望能按照使其为顺序列表项itemID
如101
,102
,102-01
..等,将是这样的:
<ol>
<li data-itemID="101">Dashboard</li>
<li data-itemID="102">Potential Customer
<ol>
<li data-itemID="102-01">Potential Customer Activity</li>
<li data-itemID="102-99">Potential Customer Detail
<ol>
<li data-itemID="102-99-01">Potential Customer Detail Listing</li>
<li data-itemID="102-99-02">Potential Customer Follow Up
<ol>
<li data-itemID="102-99-02-01">Follow Up PAR</li>
</ol>
</li>
</ol>
</li>
</ol>
<li>
<ol>
我已经试过我的代码如下:
from flask import *
import re
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def checkName():
orderList = ''
listItem = [
['101','Dashboard'],
['102','Potential Customer'],
['102-01','Potential Customer Activity'],
['102-02','Potential Customer Report'],
['102-99','Potentail Customer Detail'],
['102-99-01','Potential Customer Detail Listing'],
['102-99-02','Potential Customer Follow Up'],
['102-99-02-01','Follow Up PAR']
]
print "List Item: ",listItem
orderList += '<ol>'
for item in listItem:
if item[0].find('-') > 0:
# list has sub-list item
orderList += '<ol>'
orderList += '<li data-itemID=%s>'%(item[0])
orderList += item[1]
orderList += '</li>'
orderList += '</ol>'
else:
# list has no sub-list item
orderList += '<li data-itemID=%s>'%(item[0])
orderList += item[1]
orderList += '</li>'
orderList += '</ol>'
return render_template('home.html', orderList=orderList)
if __name__ == '__main__':
app.run(debug=True)
家。 HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home Page</title>
</head>
<body>
{% if orderList %}
{{ orderList | safe }}
{% else %}
<p>Please select a list menu</p>
{% endif %}
</body>
</html>
但是,生成的顺序列表并不如我上面所料,它不会有一个正确的子次序列表可言。在代替,它的结果是这样的:
1. Dashboard
2. Potential Customer
1. Potential Customer Activity
1. Potential Customer Report
1. Potentail Customer Detail
1. Potential Customer Detail Listing
1. Potential Customer Follow Up
1. Follow Up PAR
我怎样才能更正我的代码来实现的结果正如我上面预期?谢谢。
道歉 - 我最初的反应中使用Python 3中,但我看到你正在使用Python 2.我已经修改它在python 2中工作。 – ryanmrubin
非常感谢你,我测试了你的答案,它真的与主项目,子列表和子级列表有很大关系!谢谢。 –