Python 如何保存数据并在每次代码运行时追加数据
我正在尝试创建一个数据库来保存由以下代码生成的数据 我的问题是,每次运行代码时,它都会用函数中新生成的数据覆盖现有数据,这很有意义,因为每次运行代码时,它都会将数据列表读取为空 我的问题是如何保存代码生成的数据,并在每次使用新信息运行代码时添加到数据中 我正在尝试从URL中获取名字和姓氏作为练习,并将其添加到Python 如何保存数据并在每次代码运行时追加数据,python,Python,我正在尝试创建一个数据库来保存由以下代码生成的数据 我的问题是,每次运行代码时,它都会用函数中新生成的数据覆盖现有数据,这很有意义,因为每次运行代码时,它都会将数据列表读取为空 我的问题是如何保存代码生成的数据,并在每次使用新信息运行代码时添加到数据中 我正在尝试从URL中获取名字和姓氏作为练习,并将其添加到data=[[First\u name,Last\u name]]中,之后将添加到data\u list=[] 我需要的结果是,每次我添加一个新的URL时,它都会捕获名字,姓氏将它们保存在数
data=[[First\u name,Last\u name]]
中,之后将添加到data\u list=[]
我需要的结果是,每次我添加一个新的URL时,它都会捕获名字
,姓氏
将它们保存在数据库中,并将新数据添加到列表中,而不是从空列表开始
代码如下:
url = 'website'
data_list=[]
def data():
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
name_array = soup.find_all('h1', {'class': 'Profile-userFullName-_EP'})
name = soup.find('h1', {'class': 'Profile-userFullName-_EP'}).text.strip().split()
first_name = name[0]
last_name = name[1]
data = [[first_name, last_name]]
# data_list.append(data)
return data
data_list.append(data())
print(len(data_list))
print (data_list)
编辑
由于我是该领域的新手,在寻找保存生成数据的最佳方法后,我决定将其保存到excel工作表中,并在不使用Pandas覆盖现有数据的情况下添加到该工作表中。问题是,data()返回一个对象,即包含两个对象的列表。所以,由于您只附加了一个对象,所以列表将始终是一个。如果您提供了预期的输出,我可以添加一些代码来解决问题您的问题似乎很模糊。我想您需要获得
[firstname,lastname]
格式列表中所有姓名的列表。如果是这样,请尝试下面的代码段
url = 'website'
data_list=[]
def data():
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
name_array = soup.find_all('h1', {'class': 'Profile-userFullName-_EP'})
for x in name_array:
name = soup.find('h1', {'class': 'Profile-userFullName-_EP'}).text.strip().split()
first_name = name[0]
last_name = name[1]
data = [first_name, last_name]
data_list.append(data)
print(len(data_list))
print (data_list)
每次调用
data\u list.append(data())
,data\u list
的大小都会增加1。因为您只调用了一次,所以列表的长度为1。举例来说
data_list.append(data())
生成长度为1的数据列表
,而
data_list.append(data())
data_list.append(data())
data_list.append(data())
将生成一个长度为3的
数据列表。我不明白你在问什么。“在Python中附加到空列表时出错”处理HTML的事实与问题无关,因此只需让函数返回数据
,然后从那里开始,你就更有可能得到答案。而且,你只做了一个附加,所以你可能在某个地方缺少一个循环(当你提到多个值时)。你正在使用的网站是什么?这样我就可以在我的设备中重新创建它。预计产量是多少