私は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)
お勧めはありますか?
あなたはホワイトスペース(この場合は、タブ)を含む文字列の引用符を必要とするよう
区切り文字 '\ t'を含むフィールドはすべて引用符で囲む必要があります。それ以外の場合、それらは複数の列にまたがって分割されます。 – schwobaseggl
ファイルが別のプログラム(カスタム読み込み)によって読み込まれているので、Excelまたはsmth simillarに収まる必要はありません – Yebach
私が出た唯一の解決策はcsvライターを使用するのではなく、ファイル 'file.write(period + '\ t '+ workers \' \ t '+ range +' \ t '+ request_row +' \ t '+条件+' \ r \ n ')' – Yebach