CSVファイルは2つの異なる目的のために変換する必要があります。イベント小冊子印刷(時間によってソートされた日が賢明予定) 16/11/2017(木) 時間、ボーカル/ヴァイオリン/ Mrudagam(イベントは、 'ボーカル' の場合) 時間、ダンス/ヴァイオリンのためのPythonを使用してCSVを複数のフォーマットに変換する
/Mrudangam(イベント 'ダンス' の場合) 時間、Firebaseアップロードのドラマ(イベントは 'ドラマ' の場合)
(JSON)
日付、時刻、イベント、声楽、バイオリン、 Mrudangam、Ghatam、Kanjira、Bharata natyam、Dance、Flute、Drama
すべての列にすべての行の値があるわけではありません。たとえば、イベントが 'VOCAL'の場合は 'Vocal'のみ、 'Violin'と 'Mrudangam'は値を持ちます。
私は、CSVファイルを読み込み、
with open(args.eventfile,'r') as csvfile:
eventreader = csv.DictReader(csvfile, delimiter=",")
#sortedlist = sorted(eventreader, key=lambda row:(row['Date'],row['Time']), reverse=False)
sortedlist = sorted(eventreader, key=lambda each_dict: (datetime.strptime(each_dict['Date'], '%m/%d/%Y'),
datetime.strptime(each_dict['Time'], '%I:%M %p')))
を使用して同じことをソートし、その後、すべての行を処理し、そのような、
def form_event_string(event):
fevent=""
print("formatting event: " + event['Event'])
if event['Event'] == 'VOCAL':
fevent = "{Vocal}/{Violin}/{Veena}/{Mrudangam}/{Ghatam}/{Kanjira}/{Morsing}/{Flute}/{Other}/{Venue}".format(**event)
elif event['Event'] == 'VIOLIN':
fevent = "{Violin}/{Mrudangam}/{Ghatam}/{Kanjira}".format(**event)
elif event['Event'] == 'VEENA':
fevent = "{Veena}/{Flute}/{Violin}/{Mrudangam}/{Ghatam}/{Kanjira}/{Morsing}/{GottuVadhyam}".format(**event)
elif event['Event'] == 'GHATAM':
fevent = "{Ghatam}/{Violin}/{Mrudangam}/{Kanjira}/{Morsing}".format(**event)
else event['Event'] == 'BHARATANATYAM':
fevent = "{Bharatanatyam}".format(**event)
return fevent
とCSVファイルにこの文字列を付加しておきます。
私の質問です - これを行うには別の方法がありますか?どんな助けもありがとうございます。