【发布时间】:2016-09-15 11:22:01
【问题描述】:
我有一个类似于 dt1 的 json 响应,我正在将 json 数据写入 CSV,字段名称为 NAME、Total 和 details,下面是我的代码。
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'}
我想将详细信息字典的多行数据写入单列,如下所示。名称和总数不针对每个主题重复。有可能吗?我如何实现它。
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文件。 -
我希望结果是某种表格格式。
-
如果您的单元格数据用引号引起来,我很确定您可以将换行符作为有效字符。
-
@haliphax 不,我没有换行符。即使我能用它做什么?
-
在一个数据单元格中使用多行来分割信息。这只是一个想法。
标签: python json csv dictionary