作为Python字典返回XPATH响应

问题描述:

Scrapy noob here。我正在提取一个href'rel'attribute,如下所示:作为Python字典返回XPATH响应

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

这可以看作属性内的类似于结构的字典。

我的主要目标是获得反对'全图'的图像url。因此,我想将响应存储为Python字典。 然而,XPath返回一个Unicode“名单”(不只是一个字符串,但名单!)有一个项目(全版本内容为一个项目)

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' 

如何转换“水库”的内容转换成就像一个Python字典(将列表项目分离出来,而不仅仅是一个整体项目),这样我就可以在'rel'中从结构中获取单个组件。

我希望我很清楚。谢谢!

+0

仅针对字典中的XPath有意义的XML标签的属性值,你可以随时抓取,使用RE。顺便说一句,你正在因字典丢失项目的顺序。 – gjha

解决

上述XPATH响应基本上是与unicode的一个项目的列表。 将各个项目转换为字符串(使用x.encode('ascii')) ,然后形成字典的字符串表示形式。在我的情况下,我不得不附加并在花括号前添加字符串(rel内容)。就这样!

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

Convert a String representation of a Dictionary to a dictionary?