【问题标题】:Save data to csv file using Python使用 Python 将数据保存到 csv 文件
【发布时间】:2014-11-12 03:37:54
【问题描述】:

使用 print 语句后,我从网页中提取的数据如下所示。

[[u'Neoplasms', u'Medical Subject Headings', u'direct', u'cancer', u'Neoplasms', u'Medical Subject Headings', u'Malignant Neoplasm', u'National Cancer Institute Thesaurus', u'direct', u'cancer', u'Malignant Neoplasm', u'National Cancer Institute Thesaurus']]

我想将它写入这样的 csv 文件,每行包含六个元素。

Neoplasms, Medical Subject Headings, direct, cancer, Neoplasms, Medical Subject Headings
Malignant Neoplasm, National Cancer Institute Thesaurus, direct, cancer, Malignant Neoplasm, National Cancer Institute Thesaurus

请建议我如何去做。

【问题讨论】:

    标签: python html csv web-crawler


    【解决方案1】:

    在 python 2.7 中,您可以执行以下操作:

    import csv
    
    data = [[u'Neoplasms', u'Medical Subject Headings', u'direct', u'cancer', u'Neoplasms', u'Medical Subject Headings', u'Malignant Neoplasm', u'National Cancer Institute Thesaurus', u'direct', u'cancer', u'Malignant Neoplasm', u'National Cancer Institute Thesaurus']]
    
    
    with open('out.csv', 'wb') as csvfile:
        csvwriter = csv.writer(csvfile)
        csvwriter.writerows(data)
    

    更新:

    要获取输入数据的六个元素块:可以使用anwser中的以下函数:

    def chunks(l, n):
        """ Yield successive n-sized chunks from l.  """
        for i in xrange(0, len(l), n):
            yield l[i:i+n]
    

    然后要写入块,您可以使用:

    with open('out.csv', 'wb') as csvfile:
        csvwriter = csv.writer(csvfile)
    
        for a_chunk in chunks(data[0], 6):     
            csvwriter.writerow(a_chunk)
    

    请注意,不清楚输入数据是多个列表的列表,还是只有一个列表嵌入到另一个列表中。我假设是后者。

    【讨论】:

    • 这是其中的一部分,但 OP 还希望将这些项目分成每行 6 个项目。
    猜你喜欢
    • 2018-09-11
    • 1970-01-01
    • 2016-08-25
    • 2011-03-21
    • 1970-01-01
    • 2014-03-20
    • 2022-10-17
    • 2017-09-24
    • 2016-09-01
    相关资源
    最近更新 更多