Я пытаюсь обновить свой сайт с Django 1.11 до Django 2.2, и у меня возникают проблемы с загрузкой и анализом файлов yaml.
Сообщение об ошибке:
ScannerError: здесь не разрешены значения отображения в "", строка 1, столбец 34: b '--- \ n recipeVersion: 9 \ n имя: значение \ n' ^
I'mполучение содержимого файла с использованием ModelForm с виджетом, определенным как:
'source': AsTextFileInput()
... используя ...
class AsTextFileInput(forms.widgets.FileInput):
def value_from_datadict(self, data, files, name):
return files.get(name).read()
... и затем я получаю исходную переменную для анализаwith:
cleaned_data = super(RecipeForm, self).clean()
source = cleaned_data.get("source")
Из этого сообщения об ошибке выше видно, что мои символы новой строки экранированы, поэтому yaml видит текст в одной строке. Я попытался зарегистрировать источник этого файла, и вот как это показано в моем файле журнала:
DEBUG b '--- \ n recipeVersion: 9 \ n name: value \ n'
Итак, как я могу получить содержимое этого файла без (как мне кажется) экранированных символов новой строки, чтобы я мог разобрать его как yaml?
Редактировать: мой код и yaml (упрощенно для этого вопроса) не изменились;обновление проектов Python нарушило синтаксический анализ.