次のようなファイルにデータがあります。
196465702|91017022|['95592022', '96094942', '100920382']|91048702
以下のようにデータを変換します。
196465702|91017022|95592022|91048702
196465702|91017022|96094942|91048702
196465702|91017022|100920382|91048702
これまでのところ、私はこれを書き込もうとしました。これが正確で最適な方法であるかどうかはわかりません。また、4列目や5列目などにリストがある場合、列ごとにループして結合し直すのは面倒です。
import csv
with open('sample.out','r') as x:
f = csv.reader(x,delimiter='|')
for row in f:
s = row[2].translate(None,"'")
#print s.split(',')
for t in s.split(','):
print row[0]+'|'+row[1]+'|'+t.translate(None,"[None]")+'|'+row[3].translate(None,"None")
これを書く良い方法はありますか?さらに、データのいくつかの列にリストがある場合、行を識別して転置し、残りのデータと結合するためのより良い方法はありますか?