Skip to content
Advertisement

Can not print specifict values from an api response dictionnary (Dango)

i’m ne to Django and APIs and i’m struggling with this for days. Here’s my views.py file :

import requests
import os
from pprint import pprint
from django.views.generic import TemplateView
import json
from django.http import JsonResponse, HttpResponse
from django.shortcuts import render

def index(request):


query_url = "https://api.blockcypher.com/v1/btc/main"
params = {
    "state": "open",
}
headers = {
    }
result = requests.get(query_url, headers=headers, params=params)
json_data = result.json()
data = json.dumps(json_data, sort_keys=True, indent=4)
t = json.loads(data)
print(type(data))
print(type(t))
context = {
    "t": t,
}
return render(request, "navbar/navbar.html", context)

And here’s the index.html :

    {% load static %}
<!DOCTYPE html>
    <html>
        <head>
            <title>Blockchain Explorer</title>
            <meta charset="utf-8"> 
            
        </head>

        <body >
            
            <div class="API-response">
                {{ t }}
             </div> 
        </body>
    </html> 

But when i try to do for example :

{{ t["height"] }}

i get an error : (TemplateSyntaxError at / Could not parse the remainder: ‘[“height”]’ from ‘t[“height”]’)

Please help me and excuse me if it is a dumb question, i’m still a beginner in this framework

Advertisement

Answer

You can access the attributes using . in templates. Have a look at the accessing method calls documentation. You can try accessing using t.height.

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement