Home > Back-end >  API returning an array inside of an object how to display contents- Django
API returning an array inside of an object how to display contents- Django

Time:11-11

So I am requesting spot price from cex API, it returns something like this {"data":[{"amount: "67000.0", "base": "BTC", "currency": "USD"}]} of course there is more than one returned so I want to loop over it.

In my views.py I am passing it into my context 'price': price. Then inside of my .html file I have a list with a for loop for example:

<ul>
  {% for x in price %}
    <li>{{ x }}</li>
  {% endfor %}
</ul>

Then when I open my .html page I get

  • data
  • But what I'd like to be able to do is make a table where I have three columns to show the amount, base and currency. I am unsure on how to extract this data individualy?

    CodePudding user response:

    You can enumerate over the .values of price, and then enumerate over the dictionaries in that list with:

    <table>
    {% for vs in price.values %}
        {% for v in vs %}
            <tr><td>{{ v.amount }}</td><td>{{ v.base }}</td><td>{{ v.currency }}</td></tr>
        {% endfor %}
    {% endfor %}
    </table>

    CodePudding user response:

    In Django templates, you can access to dictionary items with a expresión like {{ dictionary.key }}

    
    <ul>
      {% for x in price %}
        <li>{{ x.amount }}</li>
      {% endfor %}
    </ul>
    

    See the docs on https://docs.djangoproject.com/en/3.2/ref/templates/api/#variables-and-lookups

    • Related