我有以下的名单如下:
my_list = [
['first-column', 'DisplayName', 'FLOW TRIGGERED: 636e56d390c8c0910d592cc6', 'ClassificationType', 'NLU', 'KeyPhrases', 'MetaIntent', 'Description', 'test description', 'SampleSentences', [], 'Regexes'],
['first-column', 'DisplayName', 'FLOW TRIGGERED: 636e56d390c8c0910d592cc6', 'ClassificationType', 'NLU', 'KeyPhrases', 'MetaIntent', 'Description', 'test description', 'SampleSentences', [], 'Regexes'],
['first-column', 'DisplayName', 'FLOW TRIGGERED: 636e56d490c8c01802592cd1', 'ClassificationType', 'NLU', 'KeyPhrases', 'MetaIntent', 'Description', 'test description', 'SampleSentences', ['Pressemitteilung?\n', 'Pressemeldung?\n', 'Wo finde ich den Schlussbericht zur Messe?\n'], 'Regexes'],
['first-column', 'DisplayName', 'FLOW TRIGGERED: 636e56d490c8c0edac592cd8', 'ClassificationType', 'NLU', 'KeyPhrases', 'MetaIntent', 'Description', 'test description', 'SampleSentences', ['Aussteller?\n', 'Ausstellerverzeichnis 2022?\n', 'Welche Aussteller waren 2022 dabei?\n', 'Ausstellerliste 2022?\n', 'Welche Unternehmen waren als Aussteller vertreten?\n'], 'Regexes'],
['first-column', 'DisplayName', 'FLOW TRIGGERED: 636e56d490c8c01739592ce0', 'ClassificationType', 'NLU', 'KeyPhrases', 'MetaIntent', 'Description', 'test description', 'SampleSentences', ['Wie hoch war die Ausstellerzahl 2022?\n', 'Wie viele Unternehmen waren vor Ort\n', 'Anzahl Aussteller?\n', 'Ausstellerzahl?\n', 'Wie viele Aussteller waren auf der Messe vertreten?\n'], 'Regexes']
]
我正在使用上面的列表编写一个CSV文件,如下所示:
rows = zip(*my_list)
with open('test.csv', "w") as f:
writer = csv.writer(f, lineterminator='\n\n')
for row in rows:
writer.writerow(row)
所以我的CSV看起来像下面。这是我需要的格式。
first-column,first-column,first-column
[],[],"['Pressemitteilung?', 'Pressemeldung?', 'Wo finde ich den Schlussbericht zur Messe?']"
Regexes,Regexes,Regexes
但上面的并不是我所需要的CSV的样子,
我需要它如下:
first-column,first-column,first-column,first-column,first-column
DisplayName,DisplayName,DisplayName,DisplayName,DisplayName
FLOW TRIGGERED: 636e56d390c8c0910d592cc6,FLOW TRIGGERED: 636e56d390c8c0910d592cc6,FLOW TRIGGERED: 636e56d490c8c01802592cd1,FLOW TRIGGERED: 636e56d490c8c0edac592cd8,FLOW TRIGGERED: 636e56d490c8c01739592ce0
ClassificationType,ClassificationType,ClassificationType,ClassificationType,ClassificationType
NLU,NLU,NLU,NLU,NLU
KeyPhrases,KeyPhrases,KeyPhrases,KeyPhrases,KeyPhrases
MetaIntent,MetaIntent,MetaIntent,MetaIntent,MetaIntent
Description,Description,Description,Description,Description
test description,test description,test description,test description,test description
SampleSentences,SampleSentences,SampleSentences,SampleSentences,SampleSentences
[],[],Pressemitteilung?,Aussteller?,Wie hoch war die Ausstellerzahl 2022?
[],[],Pressemeldung?,Ausstellerverzeichnis 2022?,Wie viele Unternehmen waren vor Ort
[],[],Wo finde ich den Schlussbericht zur Messe?,Welche Aussteller waren 2022 dabei?,Anzahl Aussteller?
[],[],[],Ausstellerliste 2022?,Ausstellerzahl?
[],[],[],Welche Unternehmen waren als Aussteller vertreten?,Wie viele Aussteller waren auf der Messe vertreten?
Regexes,Regexes,Regexes,Regexes,Regexes
我怎样才能迭代内部数组,使我的CSV看起来像上面这样?
with open('test.csv', "w") as f:
writer = csv.writer(f, lineterminator='\n\n')
for row in rows:
writer.writerow(row)
writer.writerow(row[1])
但是这会产生奇怪的输出。我是python
的新手,有没有人能帮我解决这个问题?
谢谢你,最好的问候
1条答案
按热度按时间vohkndzv1#
我不认为这是一个标准的操作,因为看起来你想填充额外的行在您的csv文件的基础上,你目前正在解析。
因此,一个示例解决方案可以检查列中是否有填充列表,然后将其他列表填充到该长度,然后为新列写入csv:
其输出:
如果你不想让这一行出现在末尾,你也需要显式地处理它,比如: