Python Pyschools主题13 Q 9 csv.writer

Python Pyschools主题13 Q 9 csv.writer,python,csv,Python,Csv,我为这个练习提出了两个不同的函数。一个使用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 i

我为这个练习提出了两个不同的函数。一个使用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)
导入csv
def csvWriter(文件名、记录):
标题=[]
对于我的记录:
如果len(i)<1:
记录.删除(i)
对于我的记录:
对于i中的v:
如果v不在标题中:
标题.附加(v)
对于我的记录:
如果len(i)==0:
返回“已处理0条记录”
测试=打开(文件名为“w”)
wr=csv.writer(测试、标题、行终止符='\n')
wr.writerow(标题)
对于我的记录:
wr.writerow(i.values())
test.close()
返回已处理的“%d条记录”。%len(条记录)
csvWriter('filename',[{'a':1,'b':2},{'a':3,'b':4}]

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

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


私有测试用例-->失败?

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

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
def csvWriter(文件名、记录):
标题=[]
对于我的记录:
如果len(i)<1:
记录.删除(i)
对于我的记录:
对于i中的v:
如果v不在标题中:
标题.附加(v)
对于我的记录:
如果len(i)==0:
返回“已处理0条记录”
测试=打开(文件名为“w”)
dict_wr=csv.DictWriter(测试、标题、行终止符='\n')
dict_wr.writerow(dict(zip(头,头)))
对于我的记录:
#添加**已排序**内置修复
dict_wr.writerow(dict(zip(header,排序的(i.values())))
test.close()
返回已处理的“%d条记录”。%len(条记录)
仍然很粗糙,我们也不打算使用csv模块。我将回去改进它,并在没有该模块的情况下尝试一下


有什么建议吗?

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

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
def csvWriter(文件名、记录):
标题=[]
对于我的记录:
如果len(i)<1:
记录.删除(i)
对于我的记录:
对于i中的v:
如果v不在标题中:
标题.附加(v)
对于我的记录:
如果len(i)==0:
返回“已处理0条记录”
测试=打开(文件名为“w”)
dict_wr=csv.DictWriter(测试、标题、行终止符='\n')
dict_wr.writerow(dict(zip(头,头)))
对于我的记录:
#添加**已排序**内置修复
dict_wr.writerow(dict(zip(header,排序的(i.values())))
test.close()
返回已处理的“%d条记录”。%len(条记录)
仍然很粗糙,我们也不打算使用csv模块。我将回去改进它,并在没有该模块的情况下尝试一下

有什么建议吗?

导入csv

def csvWriter(文件名、记录):

导入csv

def csvWriter(文件名、记录):