我试图写一个csv附加值。我可以搜索并找到缺少字段的位置,但想知道是否有方法将0作为这些字段的默认值插入。在
我有以下代码。在
def fillBlanks():
HEADERS = ['ST','Year','PCT_SHORT','PCT_V_SHORT','Year','PCT_SHORT',
'PCT_V_SHORT','Year','PCT_SHORT','PCT_V_SHORT' ]
fileH = open(outputDir+"PCT_SHORT_V_SHORT.csv", 'rb')
reader = csv.DictReader(fileH, HEADERS)
for row in reader:
if any(row[key] in (None, "") for key in row):
print "bad"+ str(row)
fileH.close()
下面是缺少的行和列。在
^{pr2}$有没有一种方法可以将默认值编码为不丢失字段?我想将字段设置为999或0。我希望这是清楚的,我是python新手。在
编辑: 这是一个数据样本 (“确定”、“2015”、“14”、“3”、“2014”、“28”、“17”、“2013”、“19”、“17”、“2012”、“36”、“12”) (“AZ”、“2015”、“14”、“2”、“2014”、“36”、“2”) ('ID'、'2015'、'12'、'0'、'2014'、'28'、'4'、'2013'、'24'、'2'、'2012'、'14'、'1')
DictReader
有一个restval
参数来设置缺失字段的默认值。在但对于缺失的领域。。。在读取值的末尾,即:行中的字段比预期的少。在
在您的问题中不清楚您丢失的字段是在末尾还是在链的任何地方。或者如果缺少意味着将有两个连续的分隔符。在
另外,
DictReader
可能不是您最好的朋友:HEADERS
定义中的某些字段具有相同的名称,因此将写入同一个键。如果这不是您的意图,您应该为每个头指定一个唯一的名称。在编辑:跟随评论
下面代码中的头为每个csv字段提供了唯一的id,缺少的字段将用传递的值}填充。在
missing
或{有了它,
DictReader
可以将每个读取的csv字段分配给各个键,或者用restval
填充。在DictWriter
撤消该操作,并用已解析(可能已填充)的csv数据将其写回outpath
相关问题 更多 >
编程相关推荐