排序/删除重复数据并正确输出到CSV

扎卡里

我想按字母顺序对数据进行排序,这是在下面的帮助下实现的。数据排序后,我想通过并删除任何重复项,但我不知道如何执行此操作。对数据进行排序并删除重复项后,我想将其导出到 csv 文件。

总而言之,我正在寻找

  1. 排序后删除重复项

  2. 正确输出到csv文件

现在,在我抓取数据并在将其写入 csv 文件之前将其打印出来后,它看起来像这样

['8 Mile', 'A Haunted House', 'Alien: Covenant', 'American Sniper', 'Baby Driver', 'Batman', 'Batman v Superman: Dawn of Justice (Extended Cut)', 'Beauty and the Beast (2017)']

使用我当前的代码,当它写入我的 csv 文件时,它将所有内容都放在顶行,每个名称都像它应该的那样放在自己的单元格中。我不明白为什么它不把它分成多行而不是一行。

使用我在本段下方尝试的示例代码,当它写入我的 csv 文件时,输出按应有的行排列,但行之间有空格。此外,它不是示例,而是在不同单元格中使用每个字母编写示例。

movielist2 = []
        for movie in movielist:
            [movielist2.append(list(list(movie)))]
        writer.writerows(movielist2)

我不明白为什么它不会在多行中打印,并且所有这些都与更改一起打印。

        all_images = browser.find_elements_by_css_selector('.border .gwt-Image')
        #for image in all_images[:5]: # first five elements
        for image in all_images:
            #print('image:', image.get_attribute('src'))
            #print('alt:', image.get_attribute('alt'))
            movienames = image.get_attribute('alt')

            #Add movie name to list
            movielist.append(movienames)

        #Scroll down the page to load more dynamic content
        for _ in range(1,6):
            ActionChains(browser).send_keys(Keys.PAGE_DOWN).perform()

        time.sleep(5)

    #Sort movie name list and delete duplicates
    movielist = list(set(movielist))
    movielist.sort()

    print(movielist)
    #Write movie names to a csv file
    file = "Example2.csv"
    with open(file, 'w') as csvfile:
        writer = csv.writer(csvfile, dialect='excel')
        #writer.writerows([movielist])

        movielist2 = []
        for movie in movielist:
            [movielist2.append(list(list(movie)))]
        writer.writerows(movielist2)
    print("Writing complete")
wp-overwatch.com

删除重复项

#Sort movie name list
movielist.sort()

添加行

movielist = list(set(movielist))

一个集合就像一个列表,除了一个集合中不允许有重复项,因此将您的列表转换为一个集合并返回将删除所有重复项。

CSV 输出

csvwriter.writerow 需要一个列表列表。外部列表用于每一行,内部列表用于该行中的每一列。现在外部列表中只有一项 - [movielist]电影列表中的所有内容都是各个列的数据。

你想要做的是,而不是传递形式为 writerows.rows 数据[ ["title1", "title2", "title3", "etc."] ]你会想要传递它更像这样的东西[ ["title1"], ["title2"], ["title3"], ["etc."] ]

编辑2:这可以这样做:

movielist2 = []
for movie in movielist:
    movielist2.append([movie])
writer.writerows(movielist2)

编辑 3:除了执行上述操作,您还可以更改行

#Add movie name to list
movielist.append(movienames)

#Add movie name to list
movielist.append([movienames])

这也应该有效。您只需要确保传递给 writer.writerows() 函数的电影列表是一个列表列表,而不是一个列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Powershell 阵列:HOWTO 重复数据删除输出

来自分类Dev

bash csv 文件列提取和重复数据删除

来自分类Dev

Sybase删除重复数据

来自分类Dev

Elasticsearch重复数据删除

来自分类Dev

删除重复数据mysql

来自分类Dev

删除重复数据 Python

来自分类Dev

bash在多个字段上排序并进行重复数据删除

来自分类Dev

如何在Hive中对文件进行重复数据删除并保持原始排序顺序?

来自分类Dev

为什么我不能对我的数组进行排序和重复数据删除?

来自分类Dev

ElasticSearch 通过(无痛)脚本排序 - 数组值被神秘地重复数据删除

来自分类Dev

带有聚合计算检查的输出重复数据删除

来自分类常见问题

ArrayList重复数据删除问题

来自分类Dev

重复数据删除SQL Server表

来自分类Dev

R中的重复数据删除列对

来自分类Dev

删除新闻文件中的重复数据

来自分类Dev

如何删除重复数据的行(R)

来自分类Dev

多维数组值的重复数据删除

来自分类Dev

在MySQL中删除重复数据

来自分类Dev

Python中的重复数据删除

来自分类Dev

两列重复数据删除

来自分类Dev

删除后重复数据(Firebase)

来自分类Dev

重复数据删除Oracle xmlagg列表

来自分类Dev

删除多维数组中的重复数据

来自分类Dev

使用python进行重复数据删除

来自分类Dev

Mongodb:重复数据删除集合

来自分类Dev

如何从GridView中删除重复数据?

来自分类Dev

在MySQL中删除重复数据

来自分类Dev

重复数据删除算法逻辑

来自分类Dev

用于rsync的重复数据删除工具?