Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-追加字典值返回空字典_Python_Python 3.x_Django_Dictionary_Django Views - Fatal编程技术网

Python Django-追加字典值返回空字典

Python Django-追加字典值返回空字典,python,python-3.x,django,dictionary,django-views,Python,Python 3.x,Django,Dictionary,Django Views,我有一个单词列表,名为歌词_sorted,如下所示: word_original = lyrics_sorted word_normalized = [] 歌词\u排序=['word1'、'word2'、'word3'、] 现在我想制作一个字典,其中一个键是这个词,另一个键是这个词的标准化形式 首先我声明键值,如下所示: word_original = lyrics_sorted word_normalized = [] 然后是字典: grammar_dict = {'word_origin

我有一个单词列表,名为
歌词_sorted
,如下所示:

word_original = lyrics_sorted
word_normalized = []
歌词\u排序=['word1'、'word2'、'word3'、]

现在我想制作一个字典,其中一个键是这个词,另一个键是这个词的标准化形式

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

word_original = lyrics_sorted
word_normalized = []
然后是字典:

grammar_dict = {'word_original': word_original, 'word_normalized': word_normalized}
现在,对于
word\u original
(或
lystics\u 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中测试它时,它会工作。

我会使用此设置

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
因此,
语法列表
如下所示

[
    {'word_original': 'word1', 'word_normalized': 'word1_normalized'},
    {'word_original': 'word2', 'word_normalized': 'word2_normalized'},
    {'word_original': 'word3', 'word_normalized': 'word3_normalized'},
]
因此,您可以访问Django模板中的
语法列表
上下文变量,如下所示:

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

我会使用这个设置

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
因此,
语法列表
如下所示

[
    {'word_original': 'word1', 'word_normalized': 'word1_normalized'},
    {'word_original': 'word2', 'word_normalized': 'word2_normalized'},
    {'word_original': 'word3', 'word_normalized': 'word3_normalized'},
]
因此,您可以访问Django模板中的
语法列表
上下文变量,如下所示:

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

您正在向上下文中添加一个单词对列表,而不是dict,这是有意的吗?@IainShelvington嗯,我想要的最终结果是能够生成一个包含两列的表,其中第1列显示
word1
,第2列显示
word1
的规范化形式。我做错了吗?我在以前的代码中使用了这个,它起了作用……您是在向上下文中添加单词对列表,而不是dict,是故意的吗?@IainShelvington嗯,我想要的最终结果是能够生成一个包含两列的表,其中第1列显示
word1
,第2列显示
word1
的规范化形式。我做错了吗?我在以前的代码中使用了这个,它很有效。。。