Python-不依赖“ \ n”

时间:2018-08-19 15:46:38

标签: python python-3.x

我正在使用beautifulsoup查找网页上的所有位置,并且确实如此。

get_location = second_soup.find_all('span', attrs={"class": "location"})
for local in get_location :
  if local:
    s = local.text
    s = s.replace("\n", "")
    s = s.replace("-", "") #removes the -
    s = s.split("|", 1)[0] #removes | and everything after it
    s = ''.join([i for i in s if not i.isdigit()]) #removes numbers from zip
    s = s.lstrip() #removes spaces
    s = s.rstrip() #removes spaces
    print(s)

我得到以下结果:

New York, NY
Brooklyn, NY
Johnville, KY

但是,我需要这样:

New York, NY, Brooklyn, NY, Johnville, KY

我尝试过的事情:

1)代替s.replace("\n", "")使用s.replace("\n", ", ")

结果相同,除了\ n替换为,之外,我得到:

, New York, NY, 
, Brooklyn, NY, 
, Johnville, KY, 

2)删除替换并使用s = '\n'.join([line.strip() for line in s])

结果很奇怪,我每行只有一个字符。如:

N
E
W


Y
O
R
K

编辑

我需要单行代码的原因是我将其插入到数组中,而我无法在数组中插入多行,所以得到New York, NY就是这样

这就是我想要我的数组的方式:

['New York, NY, Brooklyn, NY, Johnville, KY', 'Boston, MA, Miami, FL']

3 个答案:

答案 0 :(得分:1)

由于我们没有您的数据,因此我无法测试,但我认为您需要以下信息:

get_location = second_soup.find_all('span', attrs={"class": "location"})
rebuilt = []
for local in get_location :
    if local:
        s = local.text
        s = s.replace("\n", "")
        s = s.replace("-", "") #removes the -
        s = s.split("|", 1)[0] #removes | and everything after it
        s = ''.join([i for i in s if not i.isdigit()]) #removes numbers from zip
        s = s.strip() #removes spaces
        rebuilt.extend(s)
print(rebuilt)

答案 1 :(得分:0)

您可以执行以下操作以逗号替换换行符:

s = ', '.join(s.split('\n'))

但是,如果您可以提供一个正在使用的示例数据blob,将会很有帮助。

答案 2 :(得分:0)

在“ if”循环的最后一行-打印,因为每行都使用print的“ end”参数设置为default ='\ n'。因此,它在每个循环的下一行中打印。 因此,如果将参数设置为comma(,)或根据您的选择,则输出将打印在同一行中。 试试这个:-

print(s, end=',')