【发布时间】:2021-11-23 14:59:42
【问题描述】:
我正在使用 python,但是我遇到了问题。
理想情况下,我希望没有重复,但如果我制作一个 csv 文件,则会输出相同的单词。 如何避免重复? 我是编程初学者,所以请对我温柔一点。 谢谢。
这是我的代码。
import requests
from bs4 import BeautifulSoup
import pandas as pd
from tqdm import tqdm
from csv import writer
all_data = []
meanings = []
words = []
while True:
spell = input("spell: ")
r = requests.get(
"http://www.urbandictionary.com/define.php?term={}".format(spell))
r.encoding = r.apparent_encoding
data = BeautifulSoup(r.content, features="lxml")
explanation_list = data.find("div", attrs={"class": "meaning"})
explanation_list = explanation_list.get_text()
print(explanation_list)
meanings.append(explanation_list)
words.append(spell)
all_data = ({'words': words, 'meanings': meanings})
df = pd.DataFrame(data=all_data)
filepath = 'C:/Users/dict1.csv'
df.to_csv(filepath, mode='a', index=False, header=None)
【问题讨论】:
-
在
while循环中,将单词附加到words列表中,然后在将DataFrame保存到csv文件时使用mode='a'(=append)。您可能想要更改两者中的任何一个。 -
那么,我该怎么做呢?如果我将 mode='a' 更改为 mode ='w',显然没有重复,但问题是我想在每次运行代码时附加 all_data。 @marcel
标签: python excel pandas csv beautifulsoup