我想按字母顺序对数据进行排序,这是在下面的帮助下实现的。数据排序后,我想通过并删除任何重复项,但我不知道如何执行此操作。对数据进行排序并删除重复项后,我想将其导出到 csv 文件。
总而言之,我正在寻找
排序后删除重复项
正确输出到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")
前
#Sort movie name list
movielist.sort()
添加行
movielist = list(set(movielist))
一个集合就像一个列表,除了一个集合中不允许有重复项,因此将您的列表转换为一个集合并返回将删除所有重复项。
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] 删除。
我来说两句