2016-04-14 4 views
2

1時間のCSVファイルへの書き込みを試みています。出力の問題:各文字の後にカンマが付きます。私はwriterowwriterowsを交換しすべての文字の後のCSVカンマ

id_list = [] 

    with open(outfile1, 'r') as f: 
     reader = csv.reader(x.replace('\0','') for x in f) 

     for row in reader: 
      temp = row 
      try: 
       id = temp[3] 
       id_list.append(id) 

      except (IndexError, csv.Error, KeyError) as e: 
       pass 

    with open(results1, 'w') as f: 
     writer = csv.writer(f) 
     for id in id_list: 
      try: 
       prov_data = getData() 
       if prov_data is None: 
        continue 
       fab = prov_data['results'][0]['fab'] 
       man = prov_data['results'][0]['man'] 
       serv_type = prov_data['results'][0]['serv']   
       writer.writerows([str(id), str(fab), str(man), str(serv_type)]) 
      except (IndexError, KeyError,csv.Error) as e: 
       pass 

答えて

4

前に、それを複数回やったので、なぜこれが起こっているかわかりません。

問題は、writerowsは、リストのリストを期待しています。ここで、各内側のリストは書き込む行です。文字列のリストを与えているので、文字列のすべての文字がcsvファイルの列であると考えます。

2回目のforループでidも使用していないことに注意してください。outfile1という名前のファイルを開いているので、ここで名前を再考する必要があります。あなたの2番目のforループの0idに置き換えたいと思いますが、わかりません。

+2

oh神。ありがとうございました – shapiro

関連する問題