gpt4 book ai didi

python - split ("\n") 和 splitlines() 都无法拆分字符串

转载 作者:行者123 更新时间:2023-12-04 17:55:06 28 4
gpt4 key购买 nike

我的问题很简单:如果以上命令都不能将字符串拆分成多行,是否意味着没有任何内容对字符串进行定界?

我的示例非常深入,但简而言之:我已经使用 BeautifulSoup 从 HTML 表格中解析出特定数据,但是当我打印数据时,它都是一个困惑的字符串,而不是一个整洁的表格格式。我尝试将它转换为 Pandas DataFrame 但仍然没有成功。然后我尝试使用上面的命令整理输出,但也失败了。这一切让我相信它实际上必须是一个没有分隔符的连续字符串(即使在表中它们显然是单独的条目)。

我很乐意帮助解决这个问题。我不确定我是否使用了错误的命令,或者我的数据是否真的很难处理。谢谢你。

我的数据(以及我期望的打印方式):

desired output

我的相关代码:

rows = table.findAll("tr")[1:2]
data = {
'ID' : [],
'Available Quota' : [],
'Live Weight Pounds' : [],
'Price' : [],
'Date Posted' : []
}

for row in rows:
cols = row.findAll("td")
data['ID'].append(cols[0].get_text())
data['Available Quota'].append(cols[1].get_text())
data['Live Weight Pounds'].append(cols[2].get_text())
data['Price'].append(cols[3].get_text())
data['Date Posted'].append(cols[4].get_text())

fishData = pd.DataFrame(data)
#print(fishData)
str1 = ''.join(data['Available Quota'])
#print(type(str1))
#str1.split("\n")
str1.splitlines()
print(str1)

打印的内容:

GOM CODGOM HADDDABSGOM YT

最佳答案

我的猜测是,您丢弃的表格单元格内发生了一些格式设置。假设表格单元格中可见的四行由 <br> 分隔标签,BeautifulSoup 将在您调用 get_text 时丢弃该信息:

>>> s = 'First line <br />Second line <br />Third line'
>>> soup = BeautifulSoup(s)
>>> soup.get_text()
u'First line Second line Third line'

如前所述over here , 你可以换出 <br>换行符标签,这可能会让您的生活更轻松:

>>> for br in soup.find_all("br"):
... br.replace_with("\n")
>>> soup.get_text()
u'First line \nSecond line \nThird line'

strings and stripped_strings 发电机在这里也可能有用;他们返回最初由标签分隔的文本 block :

>>> soup = BeautifulSoup(s)
>>> list(soup.stripped_strings)
[u'First line', u'Second line', u'Third line']

那么,如果你这样做会发生什么:

data['Available Quota'].extend(cols[1].stripped_strings)

希望您应该在 data['Available Quota'] 中找到您要查找的列表:

>>> data['Available Quota']
['GOM', 'CODGOM', 'HADDDABSGOM', 'YT']

关于python - split ("\n") 和 splitlines() 都无法拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40915758/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com