python - 如何从多个 For 循环中将项目添加到单个字典?
问题描述
我最近开始学习 Python。我基本上在做的是从网站上抓取数据并添加到字典列表中,这就是最终结构的样子:
这基本上是我的抓取代码。我不得不使用
two for loops
,因为要定位的元素存在于网页上的不同位置(一个用于标题,另一个用于描述)
jobslist=[]
for item in title:
MainTitle = item.text
mydict = {
'title' : MainTitle,
}
jobslist.append(mydict)
for i in link:
links = i['href']
r2 = requests.get(links, headers = headers)
soup2 = BeautifulSoup(r2.content,'lxml')
entry_content = soup2.find('div', class_ ='entry-content')
mydict= {
'description' : entry_content
}
jobslist.append(mydict)
最后保存到 CSV(使用的熊猫库,其中 pd 是导入)
df = pd.DataFrame(jobslist)
df.to_csv('data.csv')
如何并排对齐?
解决方案
免责声明:很难给出完美的答案,因为您的代码不可重现;我不知道你的约会是什么样的,也不知道你想做什么,所以我无法真正测试任何东西。
根据我对您的代码的理解,字典似乎完全没有必要。您有一个标题列表和一个描述列表。随它吧:
titles_list = []
for item in title:
titles_list.append(item.text)
descriptions_list = []
for i in link:
links = i['href']
r2 = requests.get(links, headers = headers)
soup2 = BeautifulSoup(r2.content,'lxml')
entry_content = soup2.find('div', class_ ='entry-content')
descriptions_list.append(entry_content)
df = pd.DataFrame(data = {'title': titles_list, 'description': descriptions_list}) # here we use a dict of lists instead of a list of dicts
df.to_csv('data.csv')
推荐阅读
- pandas-profiling - Pandas 分析工具用于识别重复行的方法是什么?
- python - 为什么我的 lambda 在调用时似乎没有做任何事情?
- css - 如何在 flexbox 容器中换行之前移除垂直管道
- linux - Linux 终端 - 将大量十六进制字节从文本文件转换为 ASCII
- http-status-code-500 - Craft CMS 3 - 某些页面上的内部服务器错误
- ios - UIScrollView 不在 UITableViewCell 中滚动
- node.js - 如何删除猫鼬中子文档的参考文档?
- redirect - 如何制作一个重定向到列表中随机链接的网站?
- git - 如何在 GitPython 中列出两个标签之间的所有更改文件
- javascript - 如何只在 adMob 中显示文字广告