首页 > 其他 > 详细

csv特殊数据格式处理,传参列名,条件筛选

时间:2020-07-19 11:56:11      阅读:42      评论:0      收藏:0      [点我收藏+]

我们常见的csv数据都是第一行是列名,之后的每行数据对应列名。

sql常见操作:某列中的值与用户输入值相同,将这条数据取出来。

我偶然得到一个数据如下,第一行是列名,state,和年份,每行数据对是对应年份和州的人口数。

技术分享图片

 

要求操作:用户输入年份,例如查询2011年,California 的人口数。

难点:与上面查询不同的是,列名变成了参数被传入用户传参是动态的,因此不可提前写死数据。

代码实现:

功能:允许用户web输入人口范围和年份,查找符合要求的数据

 1 @app.route(/test/, methods=[GET, POST])
 2 def test():
 3     min =request.args.get(min)
 4     max =request.args.get(max)
 5     year6 = request.args.get(year6)
 6     #重点是这一句,将列名当作参数传入
 7     year7 = " + str(year6) + "
 8     min1=int(min)*100000
 9     max1=int(max)*100000
10 
11     sql = """
12     SELECT * 
13     FROM TABLE where """+year7+"""  between ‘"""+str(min1)+"""‘ and ‘"""+str(max1)+"""‘ ;
14     """
15     result = ibm_db.exec_immediate(connect_db, sql)
16     dictionary = ibm_db.fetch_both(result)
17     userlist = []
18     while dictionary != False:
19         userlist.append(dictionary)
20         dictionary = ibm_db.fetch_both(result)
33     return render_template(index.html, data=userlist)

 

前端代码展现:

想要展现的数据,可以自己在前端定义

 1   <div>
 2  
 3             <form method="GET" action="/test/">
 4                 <input type="text" placeholder="min" name="min">
 5                 <input type="text" placeholder="max" name="max">
 6                 <input type="text" placeholder="year" name="year6">
 7                 <button type="submit">search</button>
 8                 </form>
 9 
10     </div>
11 
12     {% for list in data %}
13    {{ list }}
14            {% endfor %}

 

csv特殊数据格式处理,传参列名,条件筛选

原文:https://www.cnblogs.com/bocaimao/p/13338559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!