将结果集转换为字符串并放入列表
Posted
技术标签:
【中文标题】将结果集转换为字符串并放入列表【英文标题】:Convert Resultset to string and place in list 【发布时间】:2013-11-09 19:23:12 【问题描述】:我正在尝试将列表中的值转换为普通字符串,例如
listy = [['value1','value2','value3'],['value1','value2','value3'],[
我初始化了一个空列表 listy = []
并使用 find_all('a') 找到了所有 <a>
并将其作为输出生成
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'
意味着 ResultSet 不能转换为字符串。
然后我搜索如何将ResultSet
转换为String
我找到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'],[]]
【问题讨论】:
我认为您在这里造成了一些混乱。你有什么输入数据?以及你如何填充你的列表? 是的,请向我们展示您当前使用的代码,我们知道您在尝试什么。 【参考方案1】:您需要获取每个单个链接的字符串,而不是整个结果集的字符串。
遍历集合并获取.string
每个元素:
[link.string for link in item.find_all('a')]
【讨论】:
当我看到这个时,我正要粘贴我的代码。被击败42秒。 Python已经确实变得有竞争力了。 @GamesBrainiac:嘿,这个问题我来晚了。 :-) 我在它大约 10 分钟大的时候来到这里。 我对 python 还是有点陌生,但现在我有listy.append(z.y.x[link.string for link in item.find_all('a')])
不确定我是否正确使用它
listy.append([link.string for link in item.find_all('a')])
; [... for ... in ...]
是一个列表推导式,它产生一个值列表。
@Liondancer:没有看到很难评估的完整代码行;这取决于for
之前的内容,Python 仅在解析 for
时才知道事情是错误的,这根据之前的情况是出乎意料的。以上是关于将结果集转换为字符串并放入列表的主要内容,如果未能解决你的问题,请参考以下文章