执行列表理解时出现Python错误

时间:2016-03-01 15:05:22

标签: python list dictionary xpath list-comprehension

我有一个带有来自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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

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

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