New-line Charakter in unquoted Feld gesehen

Ich habe eine Datei in Erinnerung aus einem Django-Formular geladen. Es gibt mir folgende Fehlermeldung:

new-line character seen in unquoted field - do you need to open the file in universal-newline mode? 

Eine andere Lösung hat das verwendet.

  • Python Flask Anwendung bekommt OPTIONS anstelle von POST
  • Zuordnung von qcut als neue Spalte
  • Führender R-Code auf `python` mit SyntaxError: Schlüsselwort kann kein Ausdrucksfehler sein. Nachricht
  • PySerial write () nimmt nicht meine Saite
  • Struct.unpack mit bytearray's
  • Löschen einer Zeile aus einer Textdatei
  • Allerdings habe ich schon die Datei im Speicher, also muss ich sie zum Öffnen im "rU" Format ändern.

    Dies ist mein relevanter Code in views.py

     form = ResultsUploadForm(request.POST, request.FILES) if form.is_valid(): form.save() reader = csv.reader(request.FILES['file']) for row in reader: #etc... 

    Wer weiß, wie man damit geht, diese zu beheben? Der Fehler wird aus dieser Anweisung for row in reader: geworfen for row in reader:

    4 Solutions collect form web for “New-line Charakter in unquoted Feld gesehen”

    Ich fand die Lösung in einem anderen Post

    Das Problem war, wie ich die .csv-Datei gespeichert habe. Bei der Erstellung einer .csv-Datei in Excel für Mac speichern Sie es als "Windows Comma Separated Values ​​(.csv)" Dies wird die Hinzufügung von unerwünschten Zeichen, die von import csv in Django und Python werfen zu stoppen.

    Sie können den Lesemodus auf 'rU' anstelle von 'r' oder 'rb' ändern

    So habe ich den obigen Fehler beim Lesen aus der hochgeladenen CSV-Datei, die auch einige spezielle Symbole enthält, vermieden.

     def utf_8_encoder(unicode_csv_data): //encodes the Unicode strings as UTF-8 for line in unicode_csv_data: yield line.encode('utf-8') def validate_csv(request): csv_contents = request.FILES['files'].read().decode('utf-8-sig') // to avoid csv exception while reading unwanted characters (eg: \xef\xbb\xbf) request_file = csv_contents.splitlines() dict_reader = csv.DictReader(utf_8_encoder(request_file)) // avoid error - ascii' codec can't encode character u'\\ufeff' in position 0: ordinal not in range(128) #because data contain some special symobls like G mez fieldnames = dict_reader.fieldnames //fieldnames contain column header for item in dict_reader: #etc... 

    Überprüfen Sie mit der Kopfzeile in csv-Datei. Es sollte genau so sein wie der Spaltenname.

    Python ist die beste Programmiersprache der Welt.