【问题标题】:JSON Data Iteration with a List of Results带有结果列表的 JSON 数据迭代
【发布时间】:2014-05-26 21:58:11
【问题描述】:

我是 python 新手,正在尝试遍历从 BDMS API 返回的结果列表。结果的格式如下:

{
  "results": [
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"Metadata\"\n",
    "\"cs295\"\n"
  ]
}

如何使用 Flask 和 Jinja 生成元数据和 cs295 列表?

我的python代码如下:

response = requests.get(query_url, headers=http_header)
j = json.loads(response.text) # JSON response back
return render_template('builder.html', response=j)

和 HTML 位:

{% for i in response.items() %}
<h1>Value: {{ i }}</h1>
{% endfor %}

结果只是我的输入,而不是元数据和 cs295 的列表。

【问题讨论】:

  • 在项目后面不带括号试试:{% for i in response.items %}。实际上,我认为这将是一本字典,所以应该是{% for k, v in response.items %}。没有把握。不熟悉flask和jinja2
  • @bozdoz 我认为你是对的。键值对,这将使我能够访问 v。然后从那时起,另一个迭代来访问每个项目。

标签: python json flask jinja2


【解决方案1】:

你可以认为response.items()返回一个元组列表,每个元组包含一个键和字典中该键的对应值。

在您的情况下,您可能不想使用response.items(),而是想这样做:

{% for value in response['results'] %}
    <h1>Value: {{ value }}</h1>
{% endfor %}

【讨论】:

  • 做到了!现在我的结果是“元数据”和“cs295”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多