我有以下JSON
文档,其中包含下一个结构:
{
"paciente": {
"id": 1234,
"nombre": "Pablo Andrés Agudelo Marenco",
"sesion": {
"id": 12345,
"juego": [
{
"nombre": "bonzo",
"nivel": [
{
"id": 1234,
"nombre": "caida libre",
"segmento": [
{
"id": 12345,
"nombre": "Hombro",
"movimiento": [
{
"id": 1234,
"nombre": "Flexion",
"metricas": [
{
"min": 12,
"max": 34,
"media": 23,
"moda": 20
}
]
},
{
"id": 12345,
"nombre": "Extensión",
"metricas": [
{
"min": 12,
"max": 34,
"media": 23,
"moda": 20
}
]
}
]
},
{
"id": 12345,
"nombre": "Escápula",
"movimiento": [
{
"id": 1234,
"nombre": "Protracción",
"metricas": [
{
"min": 12,
"max": 34,
"media": 23,
"moda": 20
}
]
},
{
"id": 12345,
"nombre": "Retracción",
"metricas": [
{
"min": 12,
"max": 34,
"media": 23,
"moda": 20
}
]
}
]
}
],
"___léeme___": "El array 'iteraciones' contiene las vitorias o derrotas con el tiempo en segundos de cada iteración",
"iteraciones": [
{
"victoria": true,
"tiempo": 120
},
{
"victoria": false,
"tiempo": 232
}
]
}
]
}
]
}
}
}
有时,segmento
数组
"paciente": ...
"sesion": ...
"juego": ...
**"segmento":[{"id": ...,"nombre":...},{"id": ...,"nombre":...},{"id": ...,"nombre":...}]**
带有更多的一个值,两个,三个和四个值,包括或不包括。
我应该按照以下方式在Django模板中显示这些segmento.nombre
值:
我应该在模板中的一个标签segmento.nombre
中显示每个html div
值,例如:
如果在我的JSON
文档中,我只将两个值读入segmento
数组...
{
"segmento": [{
"id": 12345,
"nombre": "Escapula",
}, {
"id": 12345,
"nombre": "Hombro",
}]
}
然后,我应该在模板中将这两个值显示为:
我读了JSON文档
<code> ...
with open('ProcessedMetrics.json') as data_file:
session_data=json.loads(data_file.read())
context['session_data'] = session_data
<code> ...
在我的模板中,我正在执行以下操作:
<!-- jugar con los ciclos del segmento, movimiento -->
<div class="box-body">
<!-- begin corporal segments tabs -->
<div class="nav-tabs-custom">
{% for nest1 in session_data.paciente.sesion.juego %}
{% for nest2 in nest1.items %} <!-- get all games (juego array)-->
{%for nest3 in nest2%}
<ul class="nav nav-tabs">
<li class="active">
<a href="#mano" data-toggle="tab" aria-expanded="true"><i class="fa fa-check-square">{{nest3}}</i>
</a></li>
{%endfor%}
{%endfor%}
{%endfor%}
<li><a href="#codo" data-toggle="tab" aria-expanded="false"><i class="fa fa-check-square"></i> other tab hardcoded</a></li>
</ul>
直到那一刻我得到的结果是:
我遇到问题转发nivel
或segmento
数组...
我不知道如何以optime方式访问嵌套元素
有人可以指导我,我的想法是根据segment
数组
我非常感谢您的支持
答案 0 :(得分:1)
我在其他论坛上与我分享了这个答案,我添加了标签,它与JSON中的segment
值相关。
密钥位于href
和ul
中的标签div
标识符中,我在其中创建了标签以及与div id
的相关性,其中这些标签的内容部署了。
这样我也知道这是不是最佳选择。
<div class="box-body">
<!-- begin corporal segments tabs -->
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
{% for nest1 in session_data.paciente.sesion.juego %}
{% for nest2 in nest1.nivel %}
{%for nest3 in nest2.segmento%}
<li><a href="#{{nest3.nombre}}" data-toggle="tab" aria-expanded="true"><i class="fa fa-check-square"></i> {{nest3.nombre}}</a></li>
{%endfor%}
{%endfor%}
{%endfor%}
</ul>
<!--- Content of tabs generated above -->
<div class="tab-content">
{% for nest1 in session_data.paciente.sesion.juego %}
{% for nest2 in nest1.nivel %}
{%for nest3 in nest2.segmento%}
<!-- /.tab-pane Correlation with href tab above-->
<div class="tab-pane" id="{{nest3.nombre}}">
<!-- The timeline -->
<div class="box-body table-responsive no-padding">
.... More code ....
</div>
</div>
......
</div>
这样做我可以根据JSON读取中segmento
键中的值的数量生成特定的选项卡号,并将它们与这些选项卡关联到各自的内容...
如果有人有更好的选择,请评论!! 例如,最好不要在我的模板中执行很多循环,这是在客户端旁边处理,真的吗?
我可以在我的视图中阅读json,上交字典,使用他们的数据进行处理并将其发送到我的模板吗?
由于