将结果集转换为字符串并放入列表

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 时才知道事情是错误的,这根据之前的情况是出乎意料的。

以上是关于将结果集转换为字符串并放入列表的主要内容,如果未能解决你的问题,请参考以下文章

将 Java 结果集转换为字符串数组

将 SQL 查询结果转换为字符串数组

将json响应转换为字符串并放入结构中

如何将包含字符串列表的 numpy 数组转换为包含零和一列表的数组?

如何创建一个接受查询字符串并返回查询结果集的 UDF

存储过程_把字符串转化为结果集