Python Pymongo查找到Jinja2的结果

Python Pymongo查找到Jinja2的结果,python,mongodb,jinja2,pymongo,Python,Mongodb,Jinja2,Pymongo,我有一个问题,现在已经消耗了我2天的时间。 我在一个集合中进行了一次查找,结果如下 我的问题是,我似乎无法访问jinja2模板中的任何数组元素 在我的代码中,我尝试过: result = list(mycollection.find()) 以及: result = dumps(mycollection.find()) 然后: return render_template("template.html", results = result) 我的模板包含以下内容: {% for x in r

我有一个问题,现在已经消耗了我2天的时间。 我在一个集合中进行了一次查找,结果如下

我的问题是,我似乎无法访问jinja2模板中的任何数组元素

在我的代码中,我尝试过:

result = list(mycollection.find())
以及:

result = dumps(mycollection.find())
然后:

return render_template("template.html", results = result)
我的模板包含以下内容:

{% for x in results %}
 {% for entry in x %}
  <div>{{ entry.departures.status }}</div>
  <div>A break between entries</div>
 {% endfor %}
{% endfor %}
如果我将模板更改为: {{x[0]}

返回:

d
a
d
a
我不完全确定光标中是什么。。。看起来像一个字符数组?? 谢谢你的帮助

查找结果:

    [
      {
        "departures": [
          {
            "movement": {
              "airport": {
                "icao": "EHAM",
                "iata": "AMS",
                "name": "Amsterdam"
              },
              "scheduledTimeLocal": "2020-05-11 06:05+01:00",
              "scheduledTimeUtc": "2020-05-11 05:05Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "KL 1440",
            "status": "Unknown",
            "codeshareStatus": "IsOperator",
            "isCargo": false,
            "aircraft": {
              "model": "Boeing 737-700"
            },
            "airline": {
              "name": "KLM"
            }
          }
        ],
        "arrivals": [
          {
            "movement": {
              "airport": {
                "icao": "EIDW",
                "iata": "DUB",
                "name": "Dublin"
              },
              "scheduledTimeLocal": "2020-05-11 08:40+01:00",
              "scheduledTimeUtc": "2020-05-11 07:40Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "EI 3240",
            "status": "Unknown",
            "codeshareStatus": "Unknown",
            "isCargo": false,
            "aircraft": {
              "model": "ATR 72"
            },
            "airline": {
              "name": "Aer Lingus"
            }
          }
        ]
      },
      {
        "departures": [
          {
            "movement": {
              "airport": {
                "icao": "EHAM",
                "iata": "AMS",
                "name": "Amsterdam"
              },
              "scheduledTimeLocal": "2020-05-11 06:05+01:00",
              "scheduledTimeUtc": "2020-05-11 05:05Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "KL 1440",
            "status": "Unknown",
            "codeshareStatus": "IsOperator",
            "isCargo": false,
            "aircraft": {
              "model": "Boeing 737-700"
            },
            "airline": {
              "name": "KLM"
            }
          }
        ],
        "arrivals": [
          {
            "movement": {
              "airport": {
                "icao": "EIDW",
                "iata": "DUB",
                "name": "Dublin"
              },
              "scheduledTimeLocal": "2020-05-11 08:40+01:00",
              "scheduledTimeUtc": "2020-05-11 07:40Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "EI 3240",
            "status": "Unknown",
            "codeshareStatus": "Unknown",
            "isCargo": false,
            "aircraft": {
              "model": "ATR 72"
            },
            "airline": {
              "name": "Aer Lingus"
            }
          }
        ]
      }
    ]

我不是金甲二号的专家,但我想我成功地让它工作了

data_json = """
[
      {
        "departures": [
          {
            "movement": {
              "airport": {
...
...
] """ # data_json is just a copy&paste from the original post. 


import json 
import jinja2

data = json.loads(data_json)
data = {"results":  data}


template_html = """
{% for x in results %}
  {% for deprature in x.departures %}
    Departure   
    <div>{{ deprature.number }}</div>
    <div>{{ deprature.status }}</div>
    <div>A break between entries</div>
  {% endfor %}
{% endfor %}
"""

template = jinja2.Template(template_html)
res = template.render(data)
print(res)
关于上述代码的一些注释:

首先,原始词典中没有“结果”。在添加数据={results:data}之后,事情开始运行。 其次,对于每个条目,我提取所有的偏离,然后提取每个条目的状态。
底线-似乎正在工作

嗨,罗伊,谢谢你。这适用于所有的出发,然后获得状态,谢谢!你在这里所做的也是解决问题的好方法。这几天我一直在绞尽脑汁,兜圈子!
    [
      {
        "departures": [
          {
            "movement": {
              "airport": {
                "icao": "EHAM",
                "iata": "AMS",
                "name": "Amsterdam"
              },
              "scheduledTimeLocal": "2020-05-11 06:05+01:00",
              "scheduledTimeUtc": "2020-05-11 05:05Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "KL 1440",
            "status": "Unknown",
            "codeshareStatus": "IsOperator",
            "isCargo": false,
            "aircraft": {
              "model": "Boeing 737-700"
            },
            "airline": {
              "name": "KLM"
            }
          }
        ],
        "arrivals": [
          {
            "movement": {
              "airport": {
                "icao": "EIDW",
                "iata": "DUB",
                "name": "Dublin"
              },
              "scheduledTimeLocal": "2020-05-11 08:40+01:00",
              "scheduledTimeUtc": "2020-05-11 07:40Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "EI 3240",
            "status": "Unknown",
            "codeshareStatus": "Unknown",
            "isCargo": false,
            "aircraft": {
              "model": "ATR 72"
            },
            "airline": {
              "name": "Aer Lingus"
            }
          }
        ]
      },
      {
        "departures": [
          {
            "movement": {
              "airport": {
                "icao": "EHAM",
                "iata": "AMS",
                "name": "Amsterdam"
              },
              "scheduledTimeLocal": "2020-05-11 06:05+01:00",
              "scheduledTimeUtc": "2020-05-11 05:05Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "KL 1440",
            "status": "Unknown",
            "codeshareStatus": "IsOperator",
            "isCargo": false,
            "aircraft": {
              "model": "Boeing 737-700"
            },
            "airline": {
              "name": "KLM"
            }
          }
        ],
        "arrivals": [
          {
            "movement": {
              "airport": {
                "icao": "EIDW",
                "iata": "DUB",
                "name": "Dublin"
              },
              "scheduledTimeLocal": "2020-05-11 08:40+01:00",
              "scheduledTimeUtc": "2020-05-11 07:40Z",
              "quality": [
                "Basic"
              ]
            },
            "number": "EI 3240",
            "status": "Unknown",
            "codeshareStatus": "Unknown",
            "isCargo": false,
            "aircraft": {
              "model": "ATR 72"
            },
            "airline": {
              "name": "Aer Lingus"
            }
          }
        ]
      }
    ]
data_json = """
[
      {
        "departures": [
          {
            "movement": {
              "airport": {
...
...
] """ # data_json is just a copy&paste from the original post. 


import json 
import jinja2

data = json.loads(data_json)
data = {"results":  data}


template_html = """
{% for x in results %}
  {% for deprature in x.departures %}
    Departure   
    <div>{{ deprature.number }}</div>
    <div>{{ deprature.status }}</div>
    <div>A break between entries</div>
  {% endfor %}
{% endfor %}
"""

template = jinja2.Template(template_html)
res = template.render(data)
print(res)