【问题标题】:Python error when doing list comprehension进行列表理解时出现 Python 错误
【发布时间】:2016-03-01 15:05:22
【问题描述】:

我有一个字典列表,其中包含来自 HTML 文件的 xpath 查询。 是这样的:

[{"not-interested-in":"", "url": url_string1},
 {"not-interested-in":"", "url": url_string2}, and so on...]

现在我尝试从所有字典中获取一个包含“url”键的所有值的新列表:

[url_string1, url_string2, ...]

我尝试了列表理解,因为它是最推荐的方法,我这样做了(数据是字典列表):

data = tree.xpath('(//li[@data-bns="API"]/@data)[position() <= 5]')
imageURLs = [di['url'] for di in data]

运行时,我收到如下错误消息:

TypeError:字符串索引必须是整数,而不是 str

有人可以帮帮我吗?

【问题讨论】:

  • 您的实际代码会有所帮助
  • 当你打印data时,你会得到什么?
  • @zondo 好吧,我实际上得到了这样的东西:[ '{ }', '{ }' ] 我的错,没有注意到

标签: python list dictionary xpath list-comprehension


【解决方案1】:

在 imageURLs = [di['url'] for di in data] 中,您尝试使用另一个字符串 ('url') 作为索引来索引对象(di,它是一个字符串)。字符串不支持字符串索引!

(例如,'Hello!'['a'] 将返回相同的错误。)

【讨论】:

  • 谢谢,我在想对象 di 是一个字典实例
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 2021-05-24
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
  • 2013-06-30
  • 1970-01-01
相关资源
最近更新 更多