【问题标题】:Why does "\n" appear in my string output?为什么“\n”出现在我的字符串输出中?
【发布时间】:2021-02-26 11:56:40
【问题描述】:

我有一些从网站上刮下来的元素,当我使用以下代码打印它们时,它们整齐地显示为间隔元素。

print("\n" + time_element) 

这样打印

F
下午 4 点到 5:50

但是当我将 time_element 作为列传递到数据框并将其转换为字符串时,输出如下所示

 #   b'        \n                F\n        \n                4pm-5:50pm\n   

我无法理解为什么会这样以及如何摆脱这个“\n”字符。我尝试使用正则表达式来匹配“F”和“4pm-5:50pm”,我认为这样我可以分离出我需要的数据。但是使用各种方法,包括

# Define the list and the regex pattern to match
time = df['Time']
pattern = '[A-Z]+'
# Filter out all elements that match the pattern
filtered = [x for x in time if re.match(pattern, x)]
print(filtered)

我得到一个空列表。

根据我的研究,我了解到“\n”代表一个新行,并且可能有不可见的字符。但是,我不了解它们的行为方式,因此我可以摆脱它们/围绕它们来提取我需要的数据。

当我将数据传递为 csv 格式时,它会在一个单元格中打印出来

F
下午 4 点至下午 5 点 50 点

但是在分离出我需要的数据时,我仍然处于类似的位置。

【问题讨论】:

  • match 不起作用,您需要 re.search,因为您的模式不在开始。
  • 在数据框中你只是得到数据的表示,因此\n。尝试打印数据。
  • re.search 帮助回答了我的列表为何空无一物的问题
  • 你也可以过滤掉所有的空白:"".join(x for x in time if not x.isspace())

标签: python html dataframe web-scraping


【解决方案1】:

从网站提取数据时可以使用strip()函数来避免“\n”

【讨论】:

  • 这应该适用于 OP,是的。没有功能strip()strip() 是一种应用于要剥离的字符串(或字节对象)的方法
  • strip() 有所帮助,但仍有一些“\n”。我需要更多地通过网络爬虫来提取我需要的东西。
猜你喜欢
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多