Как сохранить фрейм данных в виде csv-файла в поле файл

#django #pandas #dataframe #django-models #filefield

Вопрос:

Я пытаюсь сохранить кадр данных в виде файла csv в поле файла объекта модели, но он сохраняется неправильно, файл, который сохраняется, содержит некоторые символы другого языка!! пожалуйста, скажите, что я делаю не так??

 new_df = df.to_csv(columns=['A', 'B'], index=False) doc.csvfile.save(f'{doc.id}.csv', ContentFile(new_df))  

Комментарии:

1. Вы уверены, что doc.id это определено? Может быть, вы сохраняете файл с именем .csv .

2. @JoseAntonioCastroCastro да, это определено, проблема не в этом, проблема в файле, который сохраняется, он не содержит данных фрейма данных, он содержит некоторые странные символы другого языка

Ответ №1:

Здравствуйте, вы можете попробовать сохранить csv-файл с приведенным ниже кодом

 import csv from io import StringIO from django.core.files.base import ContentFile  new_df = df.to_csv(columns=['A', 'B'], index=False)  csv_buffer = StringIO() csv_writer = csv.writer(csv_buffer) csv_writer.writerow(new_df)  csv_file = ContentFile(csv_buffer.getvalue().encode('utf-8')) doc.csvfile.save('output.csv', csv_file)