我有一个由BeautifulSoup读取的HTML,它在那里找到了一个标签。
availabilityList = []
for label in soup.find(id=studyroom).select('li.zone label'):
a = label.get_text()
b = a.encode('ascii','ignore')
availabilityList.extend(b)
#this part below doesn't work
','.join(availabilityList)
我使用编码来删除列表开头的u,但是这仍然是一个奇怪的错误。
print availabilityList是
['R', 'o', 'o', 'm', ' ', '2', '2', '5', ' ', '1', '0', ':', '0', '0', ' ', 'A', 'M', 'R', 'o', 'o', 'm', ' ', '2', '2', .....]
我只需要一个包含字符串的列表。 连接功能不起作用
availabilityList = [Room 225 10:00 AM, Room 225 11:00 AM...]
答案 0 :(得分:0)
availabilityList.extend(b)
将b
视为列表。在这种情况下是一个字符列表,并用它扩展availabilityList
。
你需要这样做:
availabilityList.append(b)
这就是我的意思:
>>> a_list = []
>>> a = 'text'
>>> a_list.append(a)
>>> a_list
['text']
>>> b = 'new_text'
>>> a_list.extend(b)
>>> a_list
['text', 'n', 'e', 'w', '_', 't', 'e', 'x', 't']
请注意差异append
和extend
。
答案 1 :(得分:0)
我认为错误不是使用BeautifulSoup,而是使用extend函数而不是append函数。
上述代码的正确第4行是:availabilityList.append(b)
基本上发生的是" b"中的字符串。被视为一个字符列表,每个字符都附加在" availabilityList"的末尾。 看看here,看看延伸和追加之间的区别。