TypeError: String indices must be intergers Django

Я пытаюсь сохранить элемент словаря, но получаю эту конкретную ошибку и не могу понять почему. мой словарь выглядит следующим образом

 comment = {'en': 'The SIDHistory attribute must be cleared', 'fr': "L'attribut SIDHistory doit être effacé"}

и функция, которую я использую

               if y.get('comment'):
                    # print('Comment :')
                    comments = y.get('comment')
                    print(comments)
                    print(comments["en"])
                    print(comments["fr"])
                    # print('     Comment in English :', comment['en'])
                    field_comment_english = comments["en"]
                    # print('     Comment in French :', comment['fr'])
                    field_comment_french = comments["fr"]
                else:
                    # print('     Comment in English : None')
                    # print('     Comment in French : None')
                    field_comment_english = 'None'
                    field_comment_french = 'None'

Он печатает нужную мне переменную без проблем, но затем я получаю ошибку в конце компиляции, говорящую мне

  File "/Users/cmahouve/PycharmProjects/secad/apps/rules_management/views.py", line 50, in all_rules_interpreter
    print(comments["en"])
TypeError: string indices must be integers

This is not a dictionary, but a string with as content that looks like something that is a dictionary. You can use the .literal_eval(…) function [Python-doc] of the ast module to parse this into a dictionary:

from ast import literal_eval

if y.get('comment'):
    comments = literal_eval(y.get('comment'))
    # …

Но вопрос в том, почему это строка, возможно, есть проблема более высокого уровня, где y "заполняется" данными.

Вернуться на верх