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