【问题标题】:List not allowing .splitlines() - Python列表不允许 .splitlines() - Python
【发布时间】:2015-12-30 02:06:13
【问题描述】:

我需要做些什么来防止错误:AttributeError: 'list' object has no attribute 'split lines' 在这里发生?如何将我拥有的列表转换为可以具有 splitlines 属性的表单?

import requests
import re
from bs4 import BeautifulSoup
import csv

#Read csv
with open ("gyms4.csv") as file:
    reader = csv.reader(file)
    csvfilelist = [row[0] for row in reader]

print csvfilelist

#Get data from each url
def get_page_data():
    for page_data in csvfilelist.splitlines():
        r = requests.get(page_data.strip())
        soup = BeautifulSoup(r.text, 'html.parser')
        yield soup

【问题讨论】:

  • 您已经有一个列表。为什么你认为你需要拆分它?
  • list 没有splitlinesstr 有。

标签: python csv web-scraping beautifulsoup


【解决方案1】:

str.splitlines() method 仅适用于字符串对象。你没有字符串对象,你有一个字符串列表:

csvfilelist = [row[0] for row in reader]

无需拆分,您已经拥有文件中每一行的第一列。只需删除.splitlines() 调用:

for page_data in csvfilelist:

【讨论】:

  • 感谢 Matijn,我最初是从使用 csvfile = open("gyms4.csv") urls = csvfile.read() 开始的,我为什么在那里仍然有分割线
  • 哦,来吧。这么小的误会还需要一个完整的答案吗?太便宜了!
  • @ivan_pozdeev:你是说那些试图帮助解答文档问题、完整代码和错误信息的问题的人,在未来不会以某种方式帮助其他人解决类似的问题吗?
  • 没错。没有看到 list 类型没有 .splitlines() 成员是一个简单的疏忽,因此这种特殊组合不太可能是一个反复出现的问题。
  • 尽管这是一个相对简单的错误,但我很感激花时间来完全解释我做错了什么。我还在学习,在其他问题上得到的帮助比这要少,这只会加剧我之前的困惑。
猜你喜欢
  • 2012-03-13
  • 2012-09-19
  • 2020-11-13
  • 2019-05-13
  • 2022-08-16
  • 2010-11-10
  • 1970-01-01
  • 2014-08-23
  • 2011-07-14
相关资源
最近更新 更多