gpt4 book ai didi

python - 从 Django 模板访问 JSON 嵌套值(数组)

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:24 25 4
gpt4 key购买 nike

我有以下具有以下结构的 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",
}]
}

然后,我应该在模板中将这两个值显示为:

enter image description here

我已阅读 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>

到目前为止我得到的结果是:

enter image description here

我在转发 nivelsegmento 数组时遇到问题...我不知道如何以优化方式访问嵌套元素

有人可以指导我,想法是根据segment数组的值的数量生成选项卡

非常感谢您的支持

最佳答案

这个答案是在其他论坛中与我分享的,我添加了该选项卡,它与 JSON 中的 segment 值相关。

关键位于 uldiv 中的选项卡 href 标识符,我在其中创建了选项卡以及与 的关联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 键中的值数量生成特定的选项卡编号,并将其与这些选项卡关联到各自的内容...

如果有人有更好的选择,请评论!例如,最好不要在我的模板中执行很多循​​环,这是在客户端旁边处理,真的吗?

我可以读取 View 中的 json,转入字典,对其数据进行一些处理并将它们发送到我的模板吗?

谢谢

关于python - 从 Django 模板访问 JSON 嵌套值(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40855623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com