0
私はdt1と同様のjsonレスポンスを持っていますが、CSNにjsonデータを書き込んでいます。フィールド名はNAME、Total、detailsです。Pythonはcsvの1行の列に複数行のデータを書き込みます
dt1 = { u'Name': ABC,
u'total': 6 ,
u'Details':{
u'Subject1': {u'Opted': False, u'value': u'100'},
u'Subject2': {u'Opted': True, u'value': u'200'},
u'Subject2': {u'Opted': True, u'value': u'200'}
}
}
with open('file.csv', 'w') as csvfile:
fieldnames = ['Name', 'Total', 'Details']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
dt2 = dt1.values()[0].keys(
for key in dt1.keys():
if dt1[key]['detected'] is True)
writer.writerow({'NAME': dt1['Name'], 'Total' : dt1['Total'], 'Details': ([key, [dt1[key][scan] for scan in dt2]])})
とCSVが発生する:私は細部のマルチラインデータを書き込みたい
NAME Total Detail
ABC 6 Subject1, "[u'Opted': False, u'value': u'100']"
ABC 6 Subject2, "[u'Opted': True, u'value': u'200']"
ABC 6 Subject3, {u'Opted': True, u'value': u'500'}
以下に示すように単一の列にのdict。名前と合計はすべての主題について繰り返されません。それは可能ですか?どのように達成するのですか?
NAME Total Details
ABC 6 Subject1, "[u'Opted': False, u'value': u'100']"
Subject2, "[u'Opted': True, u'value': u'200']"
Subject3, {u'Opted': True, u'value': u'500'}
ことは可能であるが、それはもはや 'csv'ファイルません。代わりに 'yaml'ファイルを作成してみてください。 – chapelo
私は結果をいくつかのテーブル形式にしたい。 –
セルのデータが引用符で囲まれている場合は、改行を有効な文字として使うことができます。 – haliphax