我在尝试拆分嵌套列表中的每个元素时遇到了一些麻烦。我第一次使用此method。我想对现在的嵌套列表进行另一个拆分。我以为我可以简单地使用同一行代码并进行一些修改goal2 = [[j.split("") for j in goal]]
,但是我仍然会遇到一个常见错误:'list' object has no attribute 'split'
。我知道您不能拆分列表,但是我不明白为什么我的修改与链接方法有什么不同。这是我的第一个网络抓取项目,我只在寻找网站的电话号码。我需要一些帮助解决问题的帮助,而不是新的代码,以便我可以继续学习和改进自己的方法。
import requests
import re
from bs4 import BeautifulSoup
source = requests.get('https://www.pickyourownchristmastree.org/ORxmasnw.php').text
soup = BeautifulSoup(source, 'lxml')
info = soup.findAll(text=re.compile("((?:\d{3}|\(\d{3}\))?(?:\s|-|\.)?\d{3}(?:\s|-|\.)\d{4})"))[:1]
goal = [i.split(".") for i in info]
goal2 = [[j.split("") for j in goal]]
for x in goal:
del x[2:]
for y in goal:
del y[:1]
print('info:', info)
print('goal:', goal)
没有goal2
变量的输出:
info: ['89426 Green Mountain Road, Astoria, OR 97103. Phone: 503-325-9720. Open: ']
goal: [[' Phone: 503-325-9720']]
具有“ goal2
”变量的所需输出:
info: [info: ['89426 Green Mountain Road, Astoria, OR 97103. Phone: 503-325-9720. Open: ']
goal: [[' Phone: 503-325-9720']]
goal2: ['503-325-9720']
我显然将拥有更多的数字,但我不想阻塞空间。这样看起来会更像这样:
goal2: ['503-325-9720', '###-###-####', '###-###-####', '###-###-####']
但是我要确保每个数字都可以导出到csv文件中的新行中。因此,当我创建带有标题“ Phone”的csv文件时,上面的每个数字都将位于单独的行中,而不是聚集在一起。我在想可能需要将代码更改为for循环???
我在尝试拆分嵌套列表中的每个元素时遇到了一些麻烦。我第一次分裂时就使用了这种方法。我想对现在的嵌套列表进行另一个拆分。我以为我可以简单地使用...
这里更干净的方法是只对info
进行另一个正则表达式搜索,例如: