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
"заполняется" данными.