2017-02-03 4 views
0

Ich möchte zitieren alle zusammen entfernen und wenn ich in meine CSV-Datei schreibe ich bekomme ein extra \ zwischen dem Namen und IP.Schreiben in CSV, aber nicht erwünschte Formatierung

with open('test.csv', 'w') as csvfile: 
     info = csv.writer(csvfile, quoting=csv.QUOTE_NONE, delimiter=',', escapechar='\\') 
     for json_object in json_data: 
      if len(json_object['names']) != 0: 
       name = json_object['names'][0] 
       ip = json_object['ip_address'] 
       combined = (name + ',' + ip) 
       print combined 
       info.writerow([combined]) 

das ist, was ich in meiner CSV-Datei zu sehen bin:

ncs1.aol.net\,10.136.0.2 

die Formatierung i zu erreichen bin versucht:

ncs1.aol.net,10.136.0.2 
+0

Abgesehen: Da Sie mit Python sind 2 (trotz der Python-3.x-Tag), Sie shoulduse 'open ("test.csv", "wb") ', nicht' "w" '. – DSM

Antwort

5

Sie müssen nicht schreiben die Zeile selbst, das ist der Punkt der Verwendung csv. Statt combined schaffen nur verwenden:

info.writerow([name, ip]) 

Derzeit sind Sie ein einzelne Artikel schreiben an die Reihe und das bedeutet, das Modul , für Sie ist entkommen und Sie \, bekommen.

+0

Danke. Ich habe auch bemerkt, wenn ein escapechar = '\ b' auch das Problem behoben – eric

+1

Es löst das Problem nicht, es ist falsch. So verwenden Sie das csv-Modul nicht. Du verpasst den Punkt. –

-1

Sie können auch Ihre kombinierten Ausdruck nur Streifen:

combine=combined.strip('\')