首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何过滤Jinja模板中的JSON文件?

如何过滤Jinja模板中的JSON文件?
EN

Stack Overflow用户
提问于 2022-10-06 07:37:00
回答 1查看 166关注 0票数 -3

我有一些JSON文件,看起来如下:

代码语言:javascript
复制
{
   "id":"_n2tEUURGiY",
   "title":"I Just",
   "formats":[
      {
         "format_id":"sb2",
         "format_note":"storyboard",
         "ext":"mhtml",
         "protocol":"mhtml",
         "acodec":"none",
         "vcodec":"none",
         "url":"",
         "width":48,
         "height":27,
         "fps":0.45871559633027525,
         "rows":10,
         "columns":10,
         "fragments":[
            {
               "url":"",
               "duration":218.0
            }
         ],
         "audio_ext":"none",
         "video_ext":"none",
         "format":"sb2 - 48x27 (storyboard)",
},
      {
         "format_id":"sb1",
         "format_note":"storyboard",
         "ext":"mhtml",
         "protocol":"mhtml",
         "acodec":"none",
         "vcodec":"none",
         "url":"",
         "width":45,
         "height":45,
         "fps":0.5091743119266054,
         "rows":10,
         "columns":10,
         "fragments":[
            {
               "url":"",
               "duration":196.39639639639637
            },
            {
               "url":"",
               "duration":21.60360360360363
            }
         ],
         "audio_ext":"none",
         "video_ext":"none",
         "format":"sb1 - 45x45 (storyboard)",
         "resolution":"45x45",
         "http_headers":{
            "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4556.0 Safari/537.36",
            "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Language":"en-us,en;q=0.5",
            "Sec-Fetch-Mode":"navigate"
         }
      },
{
         "asr":48000,
         "filesize":3772787,
         "format_id":"251",
         "format_note":"medium",
         "source_preference":-1,
         "fps":"None",
         "audio_channels":2,
         "height":"None",
         "quality":3,
         "has_drm":false,
         "tbr":138.348,
         "url":"",
         "width":"None",
         "language":"",
         "language_preference":-1,
         "preference":"None",
         "ext":"webm",
         "vcodec":"none",
         "acodec":"opus",
         "dynamic_range":"None",
         "abr":138.348,
         "downloader_options":{
            "http_chunk_size":10485760
         },
         "container":"webm_dash",
         "protocol":"https",
         "audio_ext":"webm",
         "video_ext":"none",
         "format":"251 - audio only (medium)",
         "resolution":"audio only",
         "http_headers":{
            "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4556.0 Safari/537.36",
            "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Language":"en-us,en;q=0.5",
            "Sec-Fetch-Mode":"navigate"
         }
      },
{
         "asr":44100,
         "filesize":"None",
         "format_id":"18",
         "format_note":"360p",
         "source_preference":-1,
         "fps":25,
         "audio_channels":2,
         "height":360,
         "quality":6,
         "has_drm":false,
         "tbr":172.717,
         "url":",
         "width":360,
         "language":"",
         "language_preference":-1,
         "preference":"None",
         "ext":"mp4",
         "vcodec":"avc1.42001E",
         "acodec":"mp4a.40.2",
         "dynamic_range":"SDR",
         "protocol":"https",
         "video_ext":"mp4",
         "audio_ext":"none",
         "vbr":172.717,
         "abr":0.0,
         "format":"18 - 360x360 (360p)",
         "resolution":"360x360",
         "filesize_approx":4819495,
         "http_headers":{
            "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4556.0 Safari/537.36",
            "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Accept-Language":"en-us,en;q=0.5",
            "Sec-Fetch-Mode":"navigate"
         }
      },

我做了一个Jinja模板,比如:

代码语言:javascript
复制
{% for format in formats %}   
                        
         {{format.format_name}}                          
                        
                    
 {% endfor %}

这使得它显示了所有的format。如何过滤输出,以便它只显示'format_id'"sb2""sb1"的格式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-06 09:26:26

在for循环中,可以使用if状态金佳

代码语言:javascript
复制
{% for format in formats %}   
  {% if format.format_id in ["sb1", "sb2"] %}
         {{format.format_name}}                          
  {% endif %}                    
{% endfor %}

PS:在JSON数据中,格式对象没有"format_name“键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73970123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档