Python 如何将列表内容作为单行写入csv文件

Python 如何将列表内容作为单行写入csv文件,python,list,csv,Python,List,Csv,我有以下样本清单: sample_list = [['test1', 'test2'], ['am', 'cm']] 我想将上述列表写入csv文件。我正在为此使用以下代码: with open('sample.csv', 'wb') as f_csv: writer = csv.writer(f_csv, delimiter=',', dialect='excel') writer.writerows(sample_list) f_csv.close() 问题是,当我打开s

我有以下样本清单:

sample_list = [['test1', 'test2'], ['am', 'cm']]
我想将上述列表写入
csv
文件。我正在为此使用以下代码:

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, delimiter=',', dialect='excel')
    writer.writerows(sample_list)
f_csv.close() 
问题是,当我打开
sample.csv
时,我看到
test1
test2
存储在单独的列中,与
am
cm
相同(存储在下一行)

我需要以下形式的输出:每个子列表列在单独的行中,子列表的元素列在一列中

test1,test2
am,cm

请帮我找出哪里出了问题。

您需要更改列表,将逗号
作为值包含在转换后的字符串内容中,如果列表值的类型可以是
int
,请将其转换,然后从列表中创建字符串:

sample_list = [[",".join([str(item) for item in sub])] for sub in sample_list]
如果我们在您的原始列表中添加了一个编号,那么:

sample_list = [['test1', 'test2', 392], ['am', 'cm']]
理解列表后,列表的形式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"
然后,在此列表上调用
writerows()

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, delimiter=',', dialect='excel')
    writer.writerows(sample_list)
sample.csv
中的输出格式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"


另外,您不需要关闭
f_csv
。将其与
with
关键字一起使用会自动解决此问题。

您需要更改列表,将逗号
作为值包含在转换后的字符串内容中,如果列表值的类型可以是
int
,请将其转换,然后从列表中创建字符串:

sample_list = [[",".join([str(item) for item in sub])] for sub in sample_list]
如果我们在您的原始列表中添加了一个编号,那么:

sample_list = [['test1', 'test2', 392], ['am', 'cm']]
理解列表后,列表的形式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"
然后,在此列表上调用
writerows()

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, delimiter=',', dialect='excel')
    writer.writerows(sample_list)
sample.csv
中的输出格式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"


另外,您不需要关闭
f_csv
。将其与
with
关键字一起使用会自动解决此问题。

您需要更改列表,将逗号
作为值包含在转换后的字符串内容中,如果列表值的类型可以是
int
,请将其转换,然后从列表中创建字符串:

sample_list = [[",".join([str(item) for item in sub])] for sub in sample_list]
如果我们在您的原始列表中添加了一个编号,那么:

sample_list = [['test1', 'test2', 392], ['am', 'cm']]
理解列表后,列表的形式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"
然后,在此列表上调用
writerows()

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, delimiter=',', dialect='excel')
    writer.writerows(sample_list)
sample.csv
中的输出格式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"


另外,您不需要关闭
f_csv
。将其与
with
关键字一起使用会自动解决此问题。

您需要更改列表,将逗号
作为值包含在转换后的字符串内容中,如果列表值的类型可以是
int
,请将其转换,然后从列表中创建字符串:

sample_list = [[",".join([str(item) for item in sub])] for sub in sample_list]
如果我们在您的原始列表中添加了一个编号,那么:

sample_list = [['test1', 'test2', 392], ['am', 'cm']]
理解列表后,列表的形式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"
然后,在此列表上调用
writerows()

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, delimiter=',', dialect='excel')
    writer.writerows(sample_list)
sample.csv
中的输出格式如下:

sample_list = [['test1,test2,392'], ['am,cm']] 
"test1,test2,392"
"am,cm"


另外,您不需要关闭
f_csv
。将其与
with
关键字一起使用会自动处理该问题。

以下脚本应每行生成一列:

import csv

sample_list = [['test1', 'test2', 1, 2], ['am', 'cm', 3, 4]]

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, dialect='excel')
    for sample in sample_list:
        writer.writerow([','.join(map(str, sample))])
这将创建一个文件,如下所示:

"test1,test2,1,2"
"am,cm,3,4"
在Excel中打开时,将显示一列

test1,test2
am,cm

以下脚本应为每行生成一列:

import csv

sample_list = [['test1', 'test2', 1, 2], ['am', 'cm', 3, 4]]

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, dialect='excel')
    for sample in sample_list:
        writer.writerow([','.join(map(str, sample))])
这将创建一个文件,如下所示:

"test1,test2,1,2"
"am,cm,3,4"
在Excel中打开时,将显示一列

test1,test2
am,cm

以下脚本应为每行生成一列:

import csv

sample_list = [['test1', 'test2', 1, 2], ['am', 'cm', 3, 4]]

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, dialect='excel')
    for sample in sample_list:
        writer.writerow([','.join(map(str, sample))])
这将创建一个文件,如下所示:

"test1,test2,1,2"
"am,cm,3,4"
在Excel中打开时,将显示一列

test1,test2
am,cm

以下脚本应为每行生成一列:

import csv

sample_list = [['test1', 'test2', 1, 2], ['am', 'cm', 3, 4]]

with open('sample.csv', 'wb') as f_csv:
    writer = csv.writer(f_csv, dialect='excel')
    for sample in sample_list:
        writer.writerow([','.join(map(str, sample))])
这将创建一个文件,如下所示:

"test1,test2,1,2"
"am,cm,3,4"
在Excel中打开时,将显示一列

test1,test2
am,cm


这里的
test\u list的值是什么?test\u list和sample\u list的值是什么?test\u list和sample\u list的值是什么?test\u list和sample\u list的值是什么?test\u list和sample\u list的值是什么?test\u list和sample\u list的值是什么与示例列表一样,我希望输出如下:
test1、test2(在一行中)am、cm(在第二行中)
可能您对行和列有一些混淆。您的原始脚本在一行中输出
test1、test2
,然后在下一行中输出
am、cm
。使用我的脚本,我将在单独的列中获得test1和test2。我需要它们在同一列中用分隔符分隔,谢谢这是我一直在寻找的:)如果示例列表有编号,则此解决方案失败。我的示例列表可以有任何类型的值(从另一个文件读取),我希望输出如下:
test1、test2(在一行中)am、cm(在第二行中)
也许您对行和列有一些混淆。您的原始脚本在一行中输出
test1、test2
,然后在下一行中输出
am、cm
。使用我的脚本,我将在单独的列中获得test1和test2。我需要它们在同一列中用分隔符分隔,谢谢这是我一直在寻找的:)如果示例列表有编号,则此解决方案失败。我的示例列表可以有任何类型的值(从另一个文件读取),我希望输出如下:
test1、test2(在一行中)am、cm(在第二行中)
也许您对行和列有一些混淆。您的原始脚本在一行中输出
test1、test2
,然后在下一行中输出
am、cm
。使用我的脚本,我将在单独的列中获得test1和test2。我需要它们在同一列中用分隔符分隔,谢谢这是我一直在寻找的:)如果示例列表有编号,则此解决方案失败。我的示例列表可以有任何类型的值(从另一个文件读取),我希望输出如下:
test1、test2(在一行中)am、cm(在第二行中)
也许您对行和列有一些混淆。原始脚本在一行中输出
test1、test2
,然后在网元中输出
am、cm