2013-10-30 55 views
2

我想如結果集轉換爲字符串並將其放置在列表

listy = [['value1','value2','value3'],['value1','value2','value3'],[ 

我初始化一個空列表listy = []的價值觀在我的列表轉換爲普通字符串,發現所有的<a>使用find_all('一「)和生成此作爲輸出

listy = [[... <a>value1</a>, <a>value2</a>, <a>value3</a>, ...],[...<a>value4</a>, <a>value5</a>, <a>value6</a>, ...],[]] 

我使用item.find_all('a').string但是我得到這個錯誤嘗試。

AttributeError: 'ResultSet' object has no attribute 'string'

含義結果集不能被轉換成字符串。

我然後搜索如何轉換ResultSetString

我發現unicode.join(u'\n', map(unicode,listy))

然而,當我嘗試這樣做我得到這個錯誤

AttributeError: 'unicode' object has no attribute 'append'

我最有可能得到這個錯誤,當我附上清單,以得到我原來的名單

如何將find_all('a')轉換爲string類型並將它們追加到列表中?

我的XML文件:

<Z> 
    <Y> 
    <x> 
     <a> value1 </a> 
     <a> value2 </a> 
     <a> value3 </a> 
    </x> 
    </Y> 
    <Y> 
    <x> 
     <a> value4 </a> 
     <a> value5 </a> 
     <a> value6 </a> 
    </x> 
    </Y> 
    <Y> 
    </Y> 
</Z> 

我想在下面的格式

listy = [['value1','value2','value3'],['value4','value5','value6'],[]]

+0

我覺得你在這裏做一些混亂。你有什麼輸入數據?以及如何填充你的列表? –

+0

是的,請告訴我們你正在使用的代碼,我們現在有一個想法你正在嘗試。 – SethMMorton

回答

4

你需要讓每個個人鏈接的字符串創建一個列表,而不是整個結果集。

遍歷集合並獲取.string每個元素

[link.string for link in item.find_all('a')] 
+3

當我看到這個時,我正準備粘貼我的代碼。打了42秒。 Python _has_確實變得有競爭力。 –

+0

@GamesBrainiac:嗨,我遲到了這個問題。 :-)大約10分鐘時我來到這裏。 –

+0

就在5分鐘前,它出現在我的名單上! :P –