需要在Python中将CSV输出打印到单独的行中,而不是一个长字符串

需要在Python中将CSV输出打印到单独的行中,而不是一个长字符串,python,csv,Python,Csv,我正在尝试将webscrape项目的输出打印到CSV文件中 例如,我在一个名为SUPP_NAME的列表下列出了供应商名称:(举个例子,实际列表中有50个项目) 以及一份编号为年份的列表,在一份名为SUPP_years的列表下: ['"9"', '"4"', '"1"', '"1"'] 我的计划是将它们放入CSV中,然后将它们作为数据帧读回,然后执行解码以获得一组值 迄今为止的代码: import csv with open('output3.csv' , 'w') as f: wri

我正在尝试将webscrape项目的输出打印到CSV文件中

例如,我在一个名为SUPP_NAME的列表下列出了供应商名称:(举个例子,实际列表中有50个项目)

以及一份编号为年份的列表,在一份名为SUPP_years的列表下:

['"9"', '"4"', '"1"', '"1"']
我的计划是将它们放入CSV中,然后将它们作为数据帧读回,然后执行解码以获得一组值

迄今为止的代码:

import csv

with open('output3.csv' , 'w') as f:
    writer = csv.writer(f)

    headers = "Supplier_name,Years\n"

    f.write(headers)

    supp_names = re.findall(r'("supplierName"):("\w+.+")', results[17].text) 
    supp_years = re.findall(r'("supplierYear"):("\d+")', results[17].text)

    SUPP_NAME = []
    for title, name in supp_names:
        print (name)
        SUPP_NAME.append(name)
        #f.write(name + "\n")

    SUPP_YEAR = []    
    for year,number in supp_years:
        print (number)
        SUPP_YEAR.append(number)
        #f.write(number + "\n")

    writer.writerow([SUPP_NAME, SUPP_YEAR])
然而,我得到的是,在
供应商名称
年份
列下,这两列下的每一列下都有一个单元格,其中包含一长串仍然包含在列表中的项目,而不是一个接一个分开的项目

我做错了什么?提前感谢您的回答。

这两个
re.findall()
电话将为您提供项目列表(希望两者长度相同)。其思想是,然后从每个元素中提取一个元素,并将其写入输出文件。Python有一个有用的函数来实现这一点。您为它提供了列表和循环,并在每次迭代中为您提供了每个项目:

import csv

with open('output3.csv', 'w' newline='') as f_output:
    writer = csv.writer(f_output)
    writer.writerow(["Supplier_name" , "Years"])

    supp_names = re.findall(r'("supplierName"):("\w+.+")', results[17].text) 
    supp_years = re.findall(r'("supplierYear"):("\d+")', results[17].text)

    for name, year in zip(supp_names, supp_years):
        writer.writerow([name, year])
csv.writer()
对象用于获取项目列表,并将它们写入文件,在它们之间自动添加所需的分隔符(即逗号)

我假设您使用的是Python3.x?如果不是,则应更改以下内容:

with open('output3.csv', 'wb') as f_output:

从我所看到的,这是正常的行为,你循环填充你的列表,然后一次全部写出来,你可能想做的是在写的时候在两个列表上迭代,只写你当前所在的列表,所以你每个条目有一行,也别忘了分隔符等等。欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。
with open('output3.csv', 'wb') as f_output: