我使用parsehub来抓取一堆电影名称,并让python脚本将其导出到html文件中,这样就可以了。然而,我想使用if语句只打印标题,其中有“”。这个结构很好,它正在计算if子句,但是它总是计算为false,我不知道为什么。这是我第一次使用Jinju2,甚至听说过这种语言。
{% for movie in movies %}
{% if 'The' in movie %}
<div name="title">{{movie["title"]}}</div>
{% endif %}
{% endfor %}或者,我跟随https://help.parsehub.com/hc/en-us/articles/217751808-API-Tutorial-How-to-get-run-data-using-Python-Flask的parsehub教程说,有一种方法可以选择性地过滤被刮掉的数据,但是我已经研究过了,并且不知道如何去做。
# movies.py
from flask import Flask, render_template
import requests
import json
API_KEY = ''
PROJECT_KEY = ''
PROJECT_DATA = f"https://www.parsehub.com/api/v2/projects/{PROJECT_KEY}/last_ready_run/data"
app = Flask(__name__, template_folder='.')
@app.route('/')
def homepage():
params = {
'api_key': API_KEY,
}
r = requests.get(
PROJECT_DATA,
params=params)
#print("The r var is: \n")
#print(r)
return render_template('movies.html', movies=json.loads(r.text)['movies'])
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)如何使jinju2 if语句求值为true,或者如何过滤已收集的数据?
我使用了一个used语句,这样我就可以确保if语句实际上是被评估的,而且确实是这样,但是每次它的计算结果都是false。
发布于 2022-03-23 00:15:36
我想是这句话:{% if 'The' in movie %}
尝试将其更改为:{% if 'The' in movie["title"] %}
如果movie是一个dict,那么if 'The' in movie正在寻找一个名为The的密钥。
https://stackoverflow.com/questions/71580402
复制相似问题