Как выполнить итерацию нескольких значений для определенного ключа в шаблоне jinja с помощью python?

#python-3.x #loops #dictionary

Вопрос:

У меня есть такой результат:

 {
          "read":["English"],
          "speak":["English", "French", "Portuguese", "German"],
          "write":[],
          "fluency":{"English":"Advanced", "German":"Beginner"}

        }
 

мой картограф данных:

 {
  language:{
   speak:[],
   write:[],
   read:[],
  fluency:{}
  }
}
 

МОЙ КОД:

 result = {}
    if 'fluency' in language.keys():
        for k, v in language.get('fluency', {}).items():
            result[k] = {v: []}
            if k in language['speak']:
                result[k][v].append('Speak')
            if k in language['read']:
                result[k][v].append('Read')
            if k in language['write']:
                result[k][v].append('Write')
return result
 

В файле шаблона

 {% for key, value in language %}
          {% for fluency, skills in value.items() %}
          <li>{{skills}}, {{fluency}} - {{(', ').join(key)}}</li>
          {% endfor %}
        {% endfor %}
 

Я хочу отобразить результат в удобочитаемом формате, как показано ниже:

 English - Advanced- speak, read
French - speak
Italian - speak
German - Beginner - speak
 

Мой код работает нормально до тех пор, пока поле беглости не появится для всех языков, Допустим, в нашем случае конечный пользователь дал свободное владение английским и немецким языками, в то время как мой код возвращает только эти два поля(английский и немецкий), но как я могу вернуть все языки? пробовал по-разному, но не получилось, как я могу этого добиться?