我为这个练习提出了两种不同的功能。一个使用csv类编写器,另一个使用DictWriter类。它们都通过了所列的预期结果,但是它们都失败了吗?
import csv
def csvWriter(filename, records):
header = []
for i in records:
if len(i) < 1:
records.remove(i)
for i in records:
for v in i:
if v not in header:
header.append(v)
for i in records:
if len(i) == 0:
return '0 records processed.'
test=open(filename,'w')
wr = csv.writer(test,header,lineterminator='\n')
wr.writerow(header)
for i in records:
wr.writerow(i.values())
test.close()
return '%d records processed.' % len(records)csvWriter(文件名,{'a':1,'b':2},{'a':3,'b':4}
(打开(‘filename’).read())- 'a,b\n2,\na,b\n3,4‘check
“2条记录通过了”
私人测试用例-->失败?
发布于 2012-05-22 19:16:39
这个函数在私有测试用例上失败的原因是,可以传递第二个参数,并且不需要排序就可以写入值。
import csv
def csvWriter(filename, records):
header = []
for i in records:
if len(i) < 1:
records.remove(i)
for i in records:
for v in i:
if v not in header:
header.append(v)
for i in records:
if len(i) == 0:
return '0 records processed.'
test=open(filename,'w')
dict_wr = csv.DictWriter(test,header,lineterminator='\n')
dict_wr.writerow(dict(zip(header,header)))
for i in records:
# Adding in the **sorted** built-in fixed it
dict_wr.writerow(dict(zip(header,sorted(i.values()))))
test.close()
return '%d records processed.' % len(records)仍然很粗糙,我们也不应该使用csv模块。我将回到改进这一点,并给它一个尝试没有模块。
有什么建议吗?
发布于 2020-08-05 20:01:58
进口csv
def csvWriter(文件名,记录):
header = []
f = []
with open(filename, 'w')as new_file:
csv_writer = csv.writer(new_file,header,lineterminator='\n')
for line in records:
if line not in header:
header.append(sorted(line))
header.append(sorted(line.values()))
for x in header:
if x not in f:
f.append(x)
csv_writer.writerow(x)
return '%s records processed.' % len(records)https://stackoverflow.com/questions/10646012
复制相似问题