将XPATH响应作为python字典返回

时间:2015-10-04 11:41:25

标签: python html xpath scrapy unicode-string

Scrapy noob在这里。我正在提取一个href< rel<属性,如下所示:

rel=""prodimage":"image_link","intermediatezoomimage":"image_link","fullimage":"image_link""

这可以看作是属性中的dict like结构。

我的主要目标是获取图像网址以反对“全图像”。因此,我想将响应存储为python字典。 但是,Xpath返回一个unicode" list" (不只是一个字符串,而是一个列表!)有一个项目(整个rel内容作为一个项目)

res = response.xpath('//*[@id="detail_product"]/div[1]/div[2]/ul/li[1]/a/@rel').extract()
print res

[u'"prodimage":"image_link", "intermediatezoomimage":"image_link", "fullimage":"image_link"']

type(res)

type 'list'

如何转换' res'的内容?类似于python字典(将分离的项目作为列表项,而不仅仅是一个整个项目),这样我就可以从结构中获取单个组件。

我希望我很清楚。谢谢!

1 个答案:

答案 0 :(得分:0)

解决

上面的XPATH响应基本上是一个包含unicode中的ONE项的列表。 将相应的项转换为字符串(使用x.encode('ascii')) 然后形成一个字典的字符串表示。在我的情况下,我不得不用花括号追加并添加字符串(rel内容)。多数民众赞成!

然后使用下面链接中提到的方法将dict的字符串表示转换为实际的dict。

Convert a String representation of a Dictionary to a dictionary?