#python #file #dictionary
#python #файл #словарь
Вопрос:
У меня есть следующие данные html / xml внутри файла, и я пытаюсь создать словарь из этих данных.
<REUTERS TOPICS="YES" LEWISSPLIT="TRAIN" CGISPLIT="TRAINING-SET" NEWID="1">
blah blah...
</REUTERS>
<REUTERS TOPICS="YES" LEWISSPLIT="TRAIN" CGISPLIT="TRAINING-SET" NEWID="2">
blah blah...
</REUTERS>
<REUTERS TOPICS="YES" LEWISSPLIT="TRAIN" CGISPLIT="TRAINING-SET" NEWID="3">
blah blah...
</REUTERS>
#many more like this...
Я пытаюсь создать словарь как
mydict = {1:"blah blah...", 2: "blah blah...", 3: "blah blah...", etc}
Где каждый идентификационный номер в моем словаре соответствует атрибуту NEWID в элементе тега REUTERS.
Пока у меня есть этот код, но я понятия не имею, как использовать атрибут NEWID в качестве ключа для пары ключ-значение моего словаря.
mydict = {}
for reuters_file in os.listdir(reuters_folder):
with open(reuters_folder reuters_file) as file:
soup = BeautifulSoup(file, "lxml")
content = str(soup)
val = content.split('<REUTERS')
mydict[int(key)] = val
Комментарии:
1. Зачем вы вообще используете
BeautifulSoup
, если вы просто собираетесь преобразовать его в строку?2.
key
Должно бытьNEWID
?3. да, ключ должен быть значением NEWID
Ответ №1:
from bs4 import BeautifulSoup
soup = BeautifulSoup(xml, 'lxml')
d = {}
for reuters in soup.find_all('reuters'):
d[reuters.get('newid')] = reuters.text
Комментарии:
1. Как бы вы создали словарь из пары ключ-значение?
2. в нем говорится, что xml не определен. Вы забыли импортировать для него зависимость?
3. Если вы запускаете скрипт из repl.it затем вам нужно будет добавить
import lxml
.4. у меня уже есть import lxml. Я получаю сообщение об ошибке xml не определен
5. Вот
xml
содержимое для анализа. Это аналогsoup = BeautifulSoup(file, "lxml")
в вашем коде.