【发布时间】:2016-08-02 14:58:10
【问题描述】:
以下脚本出错:
import csv,time,string,os,requests, datetime
test = "\\\\network\\Shared\\test.csv"
fields = ["id", "Expiration Date", "Cost", "Resale" ]
with open(test) as infile, open("c:\\upload\\tested.csv", "wb") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
r = (dict((k, v.strip()) for k, v in row.items() if v) for row in r)
wtr = csv.writer( outfile )
wtr.writerow(["id", "upload_date", "cost", "resale"])
for i, row in enumerate(r, start=1):
row['id'] = i
print(row['Expiration Date']
row['Expiration Date'] = datetime.datetime.strptime(row['Expiration Date'][:10], "%m/%d/%Y").strftime("%Y-%m-%d")
w.writerow(row)
D:\Python\Scripts>python test.py
Traceback (most recent call last):
File "test.py", line 18, in <module>
print(row['Expiration Date'])
KeyError: 'Expiration Date'
所以我想我明白发生了什么 - 来自原始文件的类似内容:
Expiration Date Cost Resale
2016-01-01 1.00 2.00
1.42 2.42
2016-05-02 1.45 9.00
据我所知,有一行没有填充到期日期列。如何强制 DictWriter 跳过空白 - 假设这是我的错误的原因?
【问题讨论】:
标签: python