我已经生成了一个dict字典,每个字典包含5个随机生成的字符串元素。如何使用每行多个值的DictWriter将str值转换为csv
我想输出每个字典到一个CSV文件中的单行,只有“干净”的字符串值,没有引号或括号。
开始与此:
numberofhands = range(int(raw_input("# of hands you want to generate: ")))
allhands = {} #create a place for all the hand dicts to go
for i in numberofhands: # loads allhands with specified # of 5 card hands
temphand = makehand(battlepile)
allhands.update({i:temphand})
with open(nameoffile,'wb') as outfile: #makes csv using writer and list of dict values
writer = csv.writer(outfile,delimiter='\t')
for key, value in allhands.items():
aRow = []
for i in value:
aRow.append(value[i])
writer.writerow([aRow])
输出看起来是这样的:
['蜘蛛'飞船'邪恶'豪猪 '亮剑']
[” Train''Sumo Wrestler''Saw''Glass''Robot']
['Bees''Cannon''House''TNT''Sumo Wrestler']
['空气'蜘蛛'风'飞船 '辣']
['海龟 '圣诞老人' '车''飞机 '云']
我的目标是让输出看起来像这样:
蜘蛛飞船危机豪猪剑
列车相扑看见玻璃机器人
只蜜蜂农府T.N.T相扑
空气蜘蛛风飞船辣
龟圣诞老人汽车飞机云
我与DictWriter挣扎 - 是有一个更清洁,Python的方式来实现这一目标?这里就是我目前:
with open(nameoffile, 'wb') as outfile: #makes csv using DictWriter and list of dict values
fieldnames = [1,2,3,4,5]
writer = csv.DictWriter(outfile, dialect='excel', fieldnames=fieldnames)
for key, value in allhands.items():
writer.writeheader()
for k, v in value[key]:
writer.writerow([v])
其中给出KeyError: 0
我明白任何指导。
谢谢!在你的例子中,它看起来像缺少的步骤是从字典值创建一个列表,然后只是写了那个列表。我不太明白temp = dict()在做什么 - 我从来没有定义过dict()。那是一个元组吗? –