gpt4 book ai didi

python - Pyschools 主题 13 Q 9 csv.writer

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:18 24 4
gpt4 key购买 nike

我为这个练习想出了两个不同的函数。一种使用 csv 类 writer,一种使用 DictWriter 类。两者都通过了列出的预期结果,但是它们未通过私有(private)测试用例?

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}]

repr(open('filename').read()) ---> 'a,b\n1,2,\na,b\n3,4' 检查

“2 条记录已通过。” ---> '2 条记录已通过。' 检查

私有(private)测试用例 ---> 失败?

最佳答案

此函数在私有(private)测试用例上失败的原因是,可以传递第二个参数,并且将在不排序的情况下写入值。

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 模块。我将回去改进这一点,并在没有模块的情况下尝试一下。

有什么建议吗?

关于python - Pyschools 主题 13 Q 9 csv.writer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10646012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com