2015-03-11 6 views
0

Я пытаюсь создать функцию, которая очищает лигу от словаря. Однако, похоже, в словарь вместо массива добавляется массив. Каким образом этоСкопировать данные с помощью lxml python

HTML я пытаюсь скрести:

<fieldset> 
    <legend align="center"> 
     <a href="/dota2/events/297-the-summit-3">The Summit 3</a> 

    </legend> 
</fieldset> 

Python функция get_league. self.url является URL, где HTML является

def get_league(self): 
    request = requests.get(self.url) 
    tree = html.fromstring(request.content) 
    league = tree.xpath("//legend[@align='center']/a/text()") 
    return league 

добавление в словарь

data['league'] = self.get_league()[0] 

Выход в формате JSON

"league": [ 
"The Summit 3" 
] 

Ожидаемый вывод

+0

Что-то не складывается. Это все работает, как и ожидалось, с помощью кода, который вы опубликовали ... вы уверены, что вы разместили правильный материал? Вероятно, вы вызываете 'data ['league'] = self.get_league()' без доступа к элементу 0. – mhawke

+0

Я верю, что 'xpath' вернет список элементов, здесь вы берете первый элемент, но хотите текст внутри (но не уверен, как вы делаете это преобразование JSON). Вы пытались «вернуть лигу [0] .text'? –

ответ

Смежные вопросы