0
CSVファイルから指定された行と列を削除するスクリプトの設計に問題があります。ここに私のスクリプトは、これまでのところです:CSVクリーンアップスクリプトのタイプエラー
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)
は、ここで私がなってきたトレースバックエラーです:あなたはそれを反復処理としてあなたがその場でCSVファイルを変更することはできません
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
あなたがにd1だけでは何を意味するかを教えてもらえますか?私のコースは、辞書を操作する方法を私たちに教えてくれませんでした。それはここでやっているように見えます。 csvfile内とおり 私が試したコードは、オープン( "A" "\\ CSULBグラ\\ 2016春\\ Geog 588 \\プロジェクト\\ ACS_14_5YR_B02001_Copy.csv E")と インポートCSV なってしまいます。writer = csv.DictWriter(csvfile、fieldnames = fieldnames) writer.writerow({'GEO.id': 'GEOID'、 'GEO.id2': 'GEOID_2'、 'GEO.display-label': 'CEN_TRACT' 、 'HD01_VD01': 'POP_TOT'}) – daven520
と私はこのトレースバックを取得します トレースバック(最新のコール最後): ファイル "C:\ Python27 \ ArcGIS10.3 \ Lib \ site-packages \ pythonwin \ pywin \ framework \ scriptutils.py "、行326、RunScriptで exec codeObject in __main __.__ dict__ ファイル" E:\ CSULB Grad \ 2016 Spring "GEOID"、 "GEO.id2": 'GEO.display-label':\ Geog 588 \ Project \ Script4.py "、行4、 writer.writerow({ 'CEN_TRACT'、 'HD01_VD01': 'POP_TOT'}) ValueError:dictにフィールド名に含まれないフィールドが含まれています: 'GEO.id2'、 'GEO.id'、 'HD01_VD01'、 'GEO.display-label' –
daven520
編集された答え。 d1/d2は、設定するデータの任意の変数名でした。 – Phillip