python - 如何将数组值导出到 CSV 中的不同行?

标签 python

我正在尝试根据来自 Google 的特定关键字导出排名和 URL,并将其导出到 csv。除了我的 CSV 文件的组成方式外,一切正常。

我的问题是,当我将数组导出为 CSV 时,所有内容都在一行中。我希望它位于 2 个不同的列和多个行上。

我尝试在 rank 变量中添加 '\n' ,当我打印结果时它在终端中打断了行,但在 csv 中它附加了\n 作为一个新值。

我尝试将 newline='\n' 添加到 open() 中,它确实在终端中中断,但在 csv 导出中没有中断。

d=[]
for i in links:
    counter = counter + 1
    if sitename in str(i):
        url = i.find_all('a', href=True)
        position = "position: %d" % (counter)
        rank = "url: %s" % (url[0]['href'])
        d.append(position)
        d.append(rank)
        print(position, rank)


filename = "rank_export.csv"
f = open(filename,"w")
headers = "URL, Rank\n" 
f.write(headers)
f.write(str(d))
f.close()

最佳答案

据我了解,您在同一个列表中附加了职位和排名。然后您在 csv 中写入该列表,从而得到单行输出。您还尝试使用逗号分隔的字符串而不是列名列表来传递 csv header ;

以下内容应该可以为您解决问题:

import csv

with open('rank_export.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerow(['URL', 'Rank'])
    writer.writerows(zip(d[0::2], d[1::2]))

关于python - 如何将数组值导出到 CSV 中的不同行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55911126/

相关文章:

python - 属性还是方法?

python - 如何使用 optparse 将命令行参数拆分为选项和位置参数?

python - 使用 python pandas 注意(保存)dataset_a 和 dataset_b 的不匹配条目

Python 数组与 json

python - 上下文管理器反向

python - Django ImportError 没有命名的模块

python - 仅使用 python 在子目录中查找文件

python - urlopen() 出现类型错误

python - 在 python 中订购 os.listdir()

Python:查找相同列表出现的次数并取平均值