写入输出CSV格式错误/怪异

2024-04-19 03:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做网页抓取-我有一个包含大约140页标题的列表,但是在将其写入CSV后,标题的格式变得非常奇怪。在使用Spyder的Python中,我可以看到正确的结果,但只有在编写之后,在CSV中它才变得奇怪。在

这是我写的代码。我做错什么了吗?在

o_file = open('headlines.csv','w')
with o_file:
    writer = csv.writer(o_file, delimiter=' ', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
    writer.writerows(h_list)

CSV中的输出如下(每个字母表后的空格和每个单词后的引号):

^{pr2}$

另外,在CSV的某些行中,第二列中也有数据。虽然我正在做的工作有一个140页标题的列表,我可以在Spyder中看到,那么它是如何以及为什么在第二列中给出一些页面标题的?有什么想法吗?在


Tags: csv代码网页标题列表格式withopen
2条回答

我们可以避免循环,而是为此实施单线解决方案:

将您的h\u列表转换为数据帧df,然后使用df.to\U csv保存为csv格式

df=pd.DataFrame({'Headline':h_list})
df.to_csv('file.csv', index=False)

输出文件.csv将在不同的行中包含列表元素。

我不明白为什么你还没有提供我(和其他人)要求的额外信息,所以下面的建议充其量只是一个有根据的猜测,实现了我在一个评论中向你建议的内容(即将h_list转换成一个包含单个字符串的列表列表):

import csv

h_list = [
    "Here's Why There Was an Empty Seat Next to Prince William at the Royal Wedding",
    "NASA wrestles with what to do with International Space Station after 2024",
    "Father-son team pilot plane from Seattle to Amsterdam",
    # etc...
]

with open('headlines.csv', 'w', newline='') as o_file:
    writer = csv.writer(o_file)
    # Make each line in h_list a row with a single headline string in it.
    writer.writerows([headline] for headline in h_list)

print('done')

执行后headlines.csv的内容:

^{pr2}$

我不确定您是否希望在csv文件中使用这种格式,因为当每行中只有一个值(字段)时(因此不需要分隔符),使用这种格式实际上没有多大意义—但是,如果没有其他内容,也许它将帮助您找到正确的方法。

相关问题 更多 >