Странный анализ ответа JSON с помощью django-шаблона - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь разобрать ответ json от запроса get на остальные API.Позвольте мне показать вам, что я имею в виду "странно".

My views.py

def about_abc(request, host_id):
    response = requests.get(
        'abc.net:1768/abc/api/v1/about',
        verify='cert/cacerts.pem',
        headers={'Accept': 'application/json', 'Authorization': 'Basic xxxxxxxxxxxxxxxxxxxxxxxx'},
    ).json()
    context = {'response': response}
    return render(request, 'itpassed/about.html', context)

сейчас, когда я помещаю свой шаблон about.html

{{ response }}

в веб-браузере я получаю нормальный, не проанализированный ответ (по крайней мере, так выглядит)

{'version': '3.3.2', 'level': 'SP2', 'system': 'unix', 'server_time': '1556275198000', 'server_utc': '2', 'multinode_enabled': 'NO', 'cg_enabled': 'NO', 'instance_id': 'hostname'}

, но когда я вставляю about.html

{% if response %}
    {% for id in response %}
        <p>{{ id }}</p>
    {% endfor %}
{% else %}
    <p>No IDs are available.</p>
{% endif %}

я получаю идентификаторы без значений:

version

level

system

server_time

server_utc

multinode_enabled

cg_enabled

instance_id

Согласно тому, что я вижу в браузере только с {{response}} в шаблоне, передается весь ответ (идентификаторыи их значения).Как разобрать это, чтобы выглядеть примерно так:

version: 3.3.2

level: SP2

system: unix

server_time: 1556275198000

server_utc: 2

multinode_enabled: NO

cg_enabled: NO

instance_id: hostname

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете получить доступ к ключу и значению из шаблона с помощью:

{% if response %}
    {% for key,value in response.items %}
        <p>{{ key }}: {{ value }}</p>
    {% endfor %}
{% else %}
    <p>No IDs are available.</p>
{% endif %}
...