首页 > 解决方案 > 如何在 Django 模板中显示 JSON?Block.io API

问题描述

我正在测试来自 block.io https://block.io/api/simple/python的 api

{
  "status" : "success",
  "data" : {
    "network" : "BTCTEST",
    "available_balance" : "0.0",
    "pending_received_balance" : "0.0",
    "balances" : [
      {
        "user_id" : 0,
        "label" : "default",
        "address" : "2NCjjB8iVKu9jnYpNcYKxxRYP9w6eWXZAq4",
        "available_balance" : "0.00000000",
        "pending_received_balance" : "0.00000000"
      }
    ]
  }
}

例如,我想仅显示相关用户的钱包地址,以便他可以进行存款。

我的观点.py

from django.shortcuts import render
from block_io import BlockIo
version = 2 # API version
block_io = BlockIo('28a8-ba34-8b81-137d', '1111111', version)

def index(request):
    balance = block_io.get_address_balance(labels='shibe1')
    context = {'balance': balance}
    return render(request, 'home.html', context)

主页.html

<h1>Block.io API</h1>
{{ balance }}

<h1>I want display example this data</h1>
<h1>Label: default</h1>
<h1>Available balance: 0.00000000</h1>
<h1>Pending received balance: 0.00000000</h1>
<h1>Address: 2NCjjB8iVKu9jnYpNcYKxxRYP9w6eWXZAq4</h1>

当我这样做时,所有数据都会显示,但我只想解决示例

图像显示数据

{'status': 'success', 'data': {'network': 'BTCTEST', 'available_balance': '0.0', 'pending_received_balance': '0.0', 'balances': [{'user_id': 1, 'label': 'shibe1', 'address': '2NADUMWksxJZRKPSNXya8R2LYQY2fGa5mNY', 'available_balance': '0.00000000', 'pending_received_balance': '0.00000000'}]}} 

我怎样才能只引用我想要的数据?

标签: jsondjango

解决方案


您可以仅使用运算符对 Django 模板语言中的变量执行各种查找.。您的数据也有一个列表,因此您需要遍历它:

<h1>Block.io API</h1>
<h1>I want display example this data</h1>
{% for bal in balance.data.balances %}
    <h1>Label: {{ bal.label }}</h1>
    <h1>Available balance: {{ bal.available_balance }}</h1>
    <h1>Pending received balance: {{ bal.pending_received_balance }}</h1>
    <h1>Address: {{ bal.address }}</h1>
{% endfor %}

推荐阅读