2016-08-17 7 views
0
with open('processedData/file.tsv', 'wb') as f: 
    dict_writer = csv.DictWriter(f, keys, delimiter = '\t') 
    dict_writer.writeheader() 
    dict_writer.writerows(hgnc_list) 

上記のコードを実行すると、私の辞書のリストをファイルに書き込むことができます。角括弧なしのcsvファイルの辞書一覧

The catch is:辞書の値の一部はリストです。どのI 角括弧や''なしで印刷することが好きで、その出力csvファイルは次のようになる代わりにcomma

の区切り文字として|を使用します。

column1 column2 column3 ... columnN 
value11 value121|value122 value13 ... value1N1|value1N2|value1N3 

の代わりに:

column1 column2 column3 ... columnN 
value11 ['value121','value122'] value13 ... ['value1N1','value1N2','value1N3'] 

文字列を再処理せずにこれを行うことはできますか?

答えて

1

csvモジュール(および一般にCSVファイル)は、特別な方法でリストエントリのようなものを処理しません。リストをCSVエントリに入れる場合は、明示的に値を文字列に変換し、文字列値を格納してから、データを読み込んだときにリストに戻して解析する必要があります。

たとえば、文字列のリストがsome_listの場合、パイプで区切られた文字列を取得するために、辞書の文字列を'|'.join(some_list)に置き換えて、その値を格納することができます。そのデータを読み込むと、そのようなエントリは単一の文字列値として読み込まれます。これはあなた自身のリストに分割する必要があります。