我正在尋求使用 python 迭代一些 JSON 的幫助。目前我有一個函數,它轉到一個 JSON API 的 URL,獲取 JSON 并將結果呈現到 results.html 中。在 results.html 中,我使用 jinja2 和 for 循環來獲取一些信息。我可以獲得的是來自 _id 和文本的信息,但是我想要做的是從用戶部分獲取信息(請參閱下面的 JSON 示例)。[email protected]("/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 回答

料青山看我應如是
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
提交
取消