搜索

首页  >  问答  >  正文

html - python制作下拉列表,怎样引用一个json文档里面的数据来实现。

想要在输入的html弄下拉列表,并且这个下拉列表的数据能引用我的数据库json。该在我的py文件编写什么代码?

这是我的输入的html,虽然在网页上能进行选择,但这样一个个填写太麻烦了

    <tr><td>起始机场: </td><td><input type="text" name="user_placeofdeparture" placeholder="请输入机场名称" <input list="airport">
    <datalist id="airport">
    <option value="北京西郊机场">
    <option value="内蒙古赤峰机场">
    <option value="长治王村机场">
    <option value="鄂尔多斯伊金霍洛机场">
    </datalist></td></tr>

    <tr><td>目的机场: </td><td><input type="text" name="user_destination" placeholder="请输入机场名称" <input list="airport">
    <datalist id="airport">
    <option value="北京首都国际机场">
    <option value="北京西郊机场">
    <option value="内蒙古赤峰机场">
    <option value="长治王村机场">
    <option value="鄂尔多斯伊金霍洛机场">
    </datalist> 
    </td></tr>

这是我的py文件,本来已经把机场名字都放在这个txt里了,但我的json也有这个,并且这个json以后还要用来计算经纬度。

我有点混乱了,我不清楚是该怎样去用。恳求帮助。

截取部分json文档里的内容

    {"北京首都国际机场": { "latitude":40.08010101, "longitude":116.5849991},"北京西郊机场": { "latitude":39.96080017, "longitude":116.2570038},  "内蒙古赤峰机场": { "latitude":42.23500061, "longitude":118.9079971},"长治王村机场": { "latitude":36.24750137, "longitude":113.1259995},"鄂尔多斯伊金霍洛机场": { "latitude":39.49, "longitude":109.8613889},"大同机场": { "latitude":40.06029892, "longitude":113.4820023}}

恳求帮助。

怪我咯怪我咯2721 天前962

全部回复(1)我来回复

  • 習慣沉默

    習慣沉默2017-06-14 10:54:22

    首先在python里面把json转成dict,然后把机场名取出来:

    import json
    
    json_str = '{"北京首都国际机场": { "latitude":40.08010101, "longitude":116.5849991},"北京西郊机场": { "latitude":39.96080017, "longitude":116.2570038}, "内蒙古赤峰机场": { "latitude":42.23500061, "longitude":118.9079971},"长治王村机场": { "latitude":36.24750137, "longitude":113.1259995},"鄂尔多斯伊金霍洛机场": { "latitude":39.49, "longitude":109.8613889},"大同机场": { "latitude":40.06029892, "longitude":113.4820023}}'
    
    airport_names = json.loads(json_str).keys()
    // 然后把airport_names传给模板

    然后在html文件里:

    <datalist id="airport">
      {% for airport_name in airport_names %}
        <option value="{{ airport_name }}">
      {% endfor %}
    </datalist>

    回复
    0
  • 取消回复