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.

  • Es ist nicht möglich, Blog-Posts mit der speziellen Kategorie Django zu verknüpfen
  • Finden und Ersetzen von Elementen in einer Liste (Python)
  • Problem läuft Hallo Welt mit Tornado Webserver (Python 2.5, Win 7)
  • Wie kann ich einen Scrolling-Hintergrund in Python mit Pygame machen?
  • Python führen viele mit "auf doppelte Schlüssel Update"?
  • Holen Sie sich die "Bits" eines Schwimmers in Python?
  • 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.