我有很多创建 CSV 文件的方法,这些方法开始让我觉得我真的在重复自己。这里有一对:
def genSmsOutputFile(self, smsDict):
with open(settings.MEDIA_ROOT + 'smsOutput.csv', 'w+') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerow( ['電話番号','会員ID','TEL1','TEL2','TEL3','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)','(ラベル無し)',] )
for key, value in smsDict.items():
phoneNumber = value[2] + value[3] + value[4]
writer.writerow( [ phoneNumber, value[0], value[2], value[3], value[4],'','','','','','','','','','','',''] )
return 'smsOutput.csv'
def genMailOutputFile(self, okMailMaga):
with open(settings.MEDIA_ROOT + 'mailMagaOutput.csv', 'w+') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerow( [ '会員id','e-mail','お名前(姓)','お名前(名)','購入回数' ] )
for key, value in okMailMaga.items():
writer.writerow( [ value[0], value[1], value[2], value[3], value[4] ] )
return settings.MEDIA_ROOT + 'mailMagaOutput.csv'
我正在努力创建函数 _writeOutputToFile(self, dictionary, columnNames):
但我发现自己陷入了如何写这行:
writer.writerow([value[0], value[1], value[2], value[3], value[4]])
有没有办法在一次循环迭代中动态地从字典中获取 CSV 的整行?
最佳答案
您可以连接列表以获得更大的列表。举个例子:
writer.writerow( [ phoneNumber, value[0], value[2], value[3], value[4],'','','','','','','','','','','',''] )
可能是:
writer.writerow([phoneNumber, value[0]] + value[2:5] + [''] * 12)
关于python - 一次遍历 Python 字典 N 项以进行 CSV 写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48493279/