【问题标题】:Django - Appending dictionary values return empty dictionaryDjango - 附加字典值返回空字典
【发布时间】:2020-08-01 04:34:38
【问题描述】:

我有一个名为 lyrics_sorted 的单词列表,看起来像这样:

lyrics_sorted = ['word1', 'word2', 'word3', ]

现在我想制作一个字典,其中一个键是这个键,另一个键是单词的规范化形式。

所以我首先声明键值,如下所示:

word_original = lyrics_sorted
word_normalized = []

然后是字典:

grammar_dict = {'word_original': word_original, 'word_normalized': word_normalized}

现在对于word_original(或lyrics_sorted)中的每个单词,我想添加规范化形式,所以我这样做:

for word in lyrics_sorted:
    w = morph.parse(word)[0]
    word_normalized.append(w.normal_form)

    context['grammar_dict'] = list(zip(grammar_dict['word_original'],
                                       grammar_dict['word_normalized'],))
return context

但我得到的只是一个空列表。我不知道我做错了什么;当我在 shell 中测试它时,它可以工作。

【问题讨论】:

  • 您要在上下文中添加单词对列表,而不是字典,这是故意的吗?
  • @IainShelvington 好吧,我想要的最终结果是能够制作一个包含两列的表格,其中第一列显示word1,第二列显示word1 的规范化形式。我做错了吗?我在以前的代码中使用过它并且它工作......

标签: python python-3.x django dictionary django-views


【解决方案1】:

我会采用这种设置。

class MyView(...):

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        lyrics_sorted = ['word1', 'word2', 'word3', ]
        grammar_list = []
        for word in lyrics_sorted:
            parsed_word = morph.parse(word)[0]
            result = {
                'word_original': word,
                'word_normalized': parsed_word.normal_form
            }
            grammar_list.append(result)

            context['grammar_list'] = grammar_list
        return context

所以,grammar_list 看起来像

[
    {'word_original': 'word1', 'word_normalized': 'word1_normalized'},
    {'word_original': 'word2', 'word_normalized': 'word2_normalized'},
    {'word_original': 'word3', 'word_normalized': 'word3_normalized'},
]

因此,您可以在 Django 模板中访问 grammar_list 上下文变量,

{% for item in grammar_list %}
    {{ item.word_original }} ---- {{ item.word_normalized }}
{% endfor %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 2016-03-14
    • 2013-11-30
    • 2023-02-24
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多