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"]、 を介して新しい文字列値を保持します。.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 に答える