Python Pymongo查找到Jinja2的结果
我有一个问题,现在已经消耗了我2天的时间。 我在一个集合中进行了一次查找,结果如下 我的问题是,我似乎无法访问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
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)