我正在寻求使用 python 迭代一些 JSON 的帮助。目前我有一个函数,它转到一个 JSON API 的 URL,获取 JSON 并将结果呈现到 results.html 中。在 results.html 中,我使用 jinja2 和 for 循环来获取一些信息。我可以获得的是来自 _id 和文本的信息,但是我想要做的是从用户部分获取信息(请参阅下面的 JSON 示例)。Results.py@app.route("/results/")def results():catfactsURl = "https://cat-fact.herokuapp.com/facts/"webUrl = urllib.request.urlopen(catfactsURl)if(webUrl.getcode() == 200): data = json.loads(webUrl.read()) return render_template("results.html", data=data['all'], title="Results")else: print("Received error, cannot parse results")结果.html{% extends 'layout.html' %}{% block title %}{{title}}{% endblock %}{% block content %}<div> {% for datas in data %} <span>{{ datas['_id'] }}</span> <p>{{ datas['text'] }} </p> <p>{{ datas['user'] }}</p> {% endfor %}</div>{% 末端嵌段含量 %}JSON 响应示例"all": [{ "_id": "58e0088b0aac31001185ed09", "text": "The world's largest cat measured 48.5 inches long.", "type": "cat", "user": { "_id": "58e007480aac31001185ecef", "name": { "first": "Kasimir", "last": "Schulz" } }, "upvotes": 7, "userUpvoted": null},
1 回答
![?](http://img1.sycdn.imooc.com/5458655200013d9802200220-100-100.jpg)
料青山看我应如是
TA贡献1772条经验 获得超8个赞
该数据源在其中一个条目 (58e008450aac31001185ecfd) 中缺少“用户”键。通过首先检查用户密钥是否存在来解决这个问题。
<div>
{% for datas in data %}
<span>{{ datas['_id'] }}</span>
<p>{{ datas['text'] }} </p>
{% if 'user' in datas.keys() %}
<p>{{ datas['user']['name']['first'] }} {{ datas['user']['name']['last'] }}</p>
{% endif %}
{% endfor %}
</div>
添加回答
举报
0/150
提交
取消