0

这是我的 item.py

class SampleItem(Item):
    title = Field()
    link = Field()
    link = Field()
    code = Field()

据说我希望我的 test.py 中有一个临时变量,比如

   loc_Con = hxs.select('/tr/td[2]/span/span/span') #for country
   loc_Reg = hxs.select('/tr/td[2]/span/span') #for region
   loc_Loc = hxs.select('//tr[3]/td[2]/span/span') #for local
   items = []
   for titles in titles:
   item = somethingItem()
   temp[1] = loc_Con.select('text()').extract()
   temp[2] = loc_Reg.select('text()').extract()
   temp[3] = loc_Loc.select('text()').extract()
   temp[1] = temp[1][0] if temp1 else ""
   temp[2] = temp[2][0] if temp2 else ""
   temp[3] = temp[3][0] if temp3 else ""
   item["code"] = "{temp[1]}-{temp[2]}-{temp[3]}".format(temp[1], 
                                                         temp[2],
                                                         temp[3])

我应该怎么做才能不必在 items.py 中添加 temp[1] = Field

4

1 回答 1

-1

您可以在循环中定义任何临时变量来计算所需的字符串值item["code"]item["code"]然后将保存一个新的字符串值 via .format(),独立于临时变量。

loc_Con = hxs.select('/tr/td[2]/span/span/span') #for country
loc_Reg = hxs.select('/tr/td[2]/span/span') #for region
loc_Loc = hxs.select('//tr[3]/td[2]/span/span') #for local
items = []
for titles in titles:
   item = somethingItem()
   temp1 = loc_Con.select('text()').extract()
   temp2 = loc_Reg.select('text()').extract()
   temp3 = loc_Loc.select('text()').extract()
   temp1 = temp1[0] if temp1 else ""
   temp2 = temp2[0] if temp2 else ""
   temp3 = temp3[0] if temp3 else ""
   item["code"] = "{0}-{1}-{2}".format(temp1, 
                                       temp2,
                                       temp3)

所以不需要添加任何特殊temp[1] = Field()的 .

于 2013-08-29T07:51:35.180 回答