2016-05-10 10 views
3

私はcsv writterを使ってtxtファイルを作成しています。 マージ時に余分な引用符が追加されます。ファイルに足すとき(セパレータそれの\ tの)python csv writterは余分な引用符を追加します

私は挿入する前に持っている最終的なリストは、なぜ、余分な引用符がある私は、この

20160501-20160531 719 1-4 "(1 1 12:00-19:00 1)" "(1 1 12:00-19:00 1)&(2 1 01:00-06:00 2)" 

を取得

['20160501-20160531', '719', '1-4', '(1\t1\t12:00-19:00\t1)', '(1\t1\t12:00-19:00\t1)&(2\t1\t01:00-06:00\t2)'] 

のですか?

すべてが余分な引用符を除く良い(タブ区切りおよびすべての)引き起こしている私が引用してみました

問題である= csv.QUOTE_NONEが、EscapeCharには

を、これは私のコード

され設定されていないため、私はエラーを取得します
for rec in formJson['presentDays']: 
     period = '%s-%s'% (scheduleS, scheduleE) 
     if not rec['workers']: 
      continue 
     else: 
      workers = ' '.join(str(e) for e in rec['workers']) 
      for rr in rec['data']: 
       range = '%s-%s' %(rr['loadFrom'],rr['loadTo']) 
       #prva vrstica v subdata je condition 
       request = rr['subdata'][0] 
       request_days = ' '.join(str(x) for x in request['days']) 
       request_works = str(request['works']) 
       request_time = '%s-%s' %(request['timeFrom'],request['timeTo']) 
       request_how = str(request['how']) 
       request_row = "(" + request_days + '\t'+ request_works + '\t'+ request_time + '\t'+ request_how + ")" 

       #gremo vse nasledne zapise, ki so condition 
       itersubdata = iter(rr['subdata']) 
       next(itersubdata) 
       conditions_rows = [] 
       for r in itersubdata: 
        condition_days = str(r['days'][0]) 
        condition_works = str(r['works']) 
        condition_time = '%s-%s' %(r['timeFrom'],r['timeTo']) 
        condition_how = str(r['how']) 
        condition_row = '(%s\t%s\t%s\t%s)' % (condition_days, condition_works, condition_time, condition_how) 
        conditions_rows.append(condition_row) 
       conditions = '&'.join(x for x in conditions_rows) 
       record = [period, workers,range,str(request_row), conditions] 
       print "record ", record 
       output.writerow(record) 

お勧めはありますか?

あなたはホワイトスペース(この場合は、タブ)を含む文字列の引用符を必要とするよう

+1

区切り文字 '\ t'を含むフィールドはすべて引用符で囲む必要があります。それ以外の場合、それらは複数の列にまたがって分割されます。 – schwobaseggl

+0

ファイルが別のプログラム(カスタム読み込み)によって読み込まれているので、Excelまたはsmth simillarに収まる必要はありません – Yebach

+0

私が出た唯一の解決策はcsvライターを使用するのではなく、ファイル 'file.write(period + '\ t '+ workers \' \ t '+ range +' \ t '+ request_row +' \ t '+条件+' \ r \ n ')' – Yebach

答えて

0

が見えるお願いします。

+0

私は何も必要ないです。 – Yebach

関連する問題