0
Ich habe Probleme beim Entwerfen eines Skripts, das bestimmte Zeilen und Spalten aus einer CSV-Datei löschen wird. Hier ist mein Skript so weit:TypeError in CSV Bereinigung Skript
import csv
with open ("E:\\CSULB Grad\\2016 Spring\\Geog 588\\Project\\ACS_14_5YR_B02001_Copy.csv","rb") as csvfile:
reader=csv.reader(csvfile)
with open ("E:\\CSULB Grad\\2016 Spring\\Geog 588\\Project\\ACS_14_5YR_B02001_Copy.csv","ab+") as csvfile2:
writer=csv.writer(csvfile2)
for row in csvfile2:
del row['HD02_VD01']
writer.writerow(row)
Hier ist der Fehler, den ich Zurückverfolgungs habe immer:
Traceback (most recent call last):
File "C:\Python27\ArcGIS10.3\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
exec codeObject in __main__.__dict__
File "E:\CSULB Grad\2016 Spring\Geog 588\Project\Script2.py", line 7, in <module>
del row['HD02_VD01']
TypeError: 'str' object does not support item deletion
Können Sie mir sagen, was Sie von d1 bedeuten in in ({ "Col1": d1, "Col2": d2})? Mein Kurs hat uns nicht gelehrt, wie man mit Wörterbüchern arbeitet, so wie es hier aussieht. (": \\ CSULB Grad \\ 2016 Frühling \\ Geog 588 \\ Projekt \\ ACS_14_5YR_B02001_Copy.csv E", "a") als csvfile sein import csv mit offenem Der Code habe ich versucht, endet: writer = csv.DictWriter (csvfile, Feldnamen = Feldnamen) writer.writerow ({'GEO.id': 'GEOID', 'GEO.id2': 'GEOID_2', 'GEO.display-label': 'CEN_TRACT' 'HD01_VD01': 'POP_TOT'}) – daven520
und ich diesen Traceback Traceback (jüngste Aufforderung zuletzt) erhalten: Datei „C: \ Python27 \ ArcGIS10.3 \ Lib \ site-packages \ PythonWin \ pywin \ Framework \ scriptutils.py ", Zeile 326, in RunScript exec codeObject in __main __.__ dict__ Datei" E: \ CSULB Grad \ 2016 Spring \ Geog 588 \ Project \ Script4.py ", Zeile 4, in writer.writerow ({'GEO.id': 'GEOID', 'GEO.id2': 'GEOID_2', 'GEO.display-label': 'CEN_TRACT', 'HD01_VD01': 'POP_TOT'}) ValueError: dict enthält Felder nicht in Feldnamen: 'GEO.id2', 'GEO.id', 'HD01_VD01', 'GEO.display-label' –
daven520
Bitte beachten die bearbeitete Antwort. d1/d2 waren nur willkürliche Variablennamen für Daten, auf die gesetzt werden soll. – Phillip