Получение строк в виде списка в одну строку с BeautifulSoup - PullRequest
1 голос
/ 04 мая 2019

Я хочу получить адресное содержимое в сигнальной строке, так как это создает проблему, когда я пытаюсь записать их в csv

text = """
<B721>
<PARTY-US>
<NAM><FNM><PDAT>Minhua</PDAT></FNM><SNM><STEXT><PDAT>Lu</PDAT></STEXT></SNM></NAM>
<ADR>
<CITY><PDAT>Mohegan Lake</PDAT></CITY>
<STATE><PDAT>NY</PDAT></STATE>
</ADR>
</PARTY-US>
</B721>
<B721>
<PARTY-US>
<NAM><FNM><PDAT>Nobushige</PDAT></FNM><SNM><STEXT><PDAT>Korenaga</PDAT></STEXT></SNM></NAM>
<ADR>
<CITY><PDAT>Utsunomiya</PDAT></CITY>
<CTRY><PDAT>JP</PDAT></CTRY>
</ADR>
</PARTY-US>
</B721>
"""


from bs4 import BeautifulSoup
soup = BeautifulSoup(text, 'lxml')

### Address info
inventors = main_inventor.find_all("b721")
address_info = inventor_address = ", ".join([i.find("adr").text.strip() for i in inventors])

Я получаю следующий вывод:

Mohegan Lake
NY, Utsunomiya
JP

Как я мог это сделать?

1 Ответ

1 голос
/ 04 мая 2019

Если вы хотите заменить все новые строки / разрывы:

# you probably want to use a space ' ' to replace  newlines/breaks '\n'
# `\n` is used in unix like environments; `\r\n` is used in windows. 

address_info = address_info.replace('\n', ' ').replace('\r', '')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...