笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

项目

发布者: 笨鸟自学网



声明字段

Field 对象用于为每个字段指定元数据。例如,用于 last_updated 上面示例中所示的字段。

可以为每个字段指定任何类型的元数据。对接受的值没有限制 Field 物体。出于同样的原因,没有所有可用元数据键的引用列表。中定义的每个键 Field 对象可以由不同的组件使用,只有那些组件知道它。您还可以定义和使用任何其他 Field 为了你自己的需要,也要输入你的项目。的主要目标 Field 对象是提供一种在一个地方定义所有字段元数据的方法。通常,行为依赖于每个字段的组件使用特定的字段键来配置该行为。您必须参考它们的文档来查看每个组件使用的元数据键。

重要的是要注意 Field 用于声明该项的对象不会保留分配为类属性的状态。相反,可以通过 Item.fields 属性。

classscrapy.item.Field([arg])
classscrapy.Field([arg])

这个 Field 类只是内置的别名 dict 类,不提供任何额外的功能或属性。换言之, Field 对象是普通的旧python dict。单独的类用于支持 item declaration syntax 基于类属性。

注解

也可以为声明字段元数据 dataclass 和 attrs 项目。请参考文件 dataclasses.field 和 attr.ib 更多信息。

使用项目对象

下面是一些使用项执行的常见任务的示例,使用 Product 项目 declared above . 您会注意到API与 dict 应用程序编程接口。

创建项目

>>> product = Product(name='Desktop PC', price=1000)
>>> print(product)
Product(name='Desktop PC', price=1000)

获取字段值

>>> product['name']
Desktop PC
>>> product.get('name')
Desktop PC
>>> product['price']
1000
>>> product['last_updated']
Traceback (most recent call last):
    ...
KeyError: 'last_updated'
>>> product.get('last_updated', 'not set')
not set
>>> product['lala'] # getting unknown field
Traceback (most recent call last):
    ...
KeyError: 'lala'
>>> product.get('lala', 'unknown field')
'unknown field'
>>> 'name' in product  # is name field populated?
True
>>> 'last_updated' in product  # is last_updated populated?
False
>>> 'last_updated' in product.fields  # is last_updated a declared field?
True
>>> 'lala' in product.fields  # is lala a declared field?
False 

上一篇:选择器下一篇:项目加载器

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-11-21 20:49 , Processed in 0.166281 second(s), 33 queries .

© 2001-2020

返回顶部