python field怎么理解_python – 为什么Scrapy的Field是dict?

基本上我有一个非常默认的设置,一个从CrawlSpider子类化的蜘蛛和一个有三个字段的项目,如下所示:

class AppdexItem(Item):

name = Field()

url = Field()

desc = Field()

当我的蜘蛛解析响应时,它会填充这样的项目:

i = AppdexItem()

name = hxs.select("//h1[@class='doc-banner-title']/text()")

i['name'] = name.extract()[0]

当我读到Field实际上是什么时,我感到很困惑.这实际上是its implementation:

class Field(dict):

"""Container of field metadata"""

这是一个简单的单词.我想知道为什么会这样,并盯着实施一段时间.它仍然没有任何意义.所以我在一个应该被解析成项目的页面上运行scrapy shell,这就是我得到的:

In [16]: item = spider.parse_app(response)

In [17]: item.fields

Out[17]: {'desc': {}, 'name': {}, 'url': {}}

In [18]: item['name']

Out[18]: u'Die Kleine Meerjungfrau'

什么?要么我做了一些完全错误的事情(我做了所有事情,比如官方的教程和例子告诉我)或者字段是一个字典是完全没有意义的.

有人可以向我解释一下吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值