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

 找回密码
 立即注册

项目

发布者: 笨鸟自学网



数据类对象

2.2 新版功能.

dataclass() 允许使用字段名定义项类,以便 item exporters 默认情况下可以导出所有字段,即使第一个刮取的对象没有所有字段的值。

此外, dataclass 项目还允许:

  • 定义每个定义字段的类型和默认值。

  • 通过定义自定义字段元数据 dataclasses.field() ,可以用来 customize serialization .

它们在python3.7或更高版本中以本机方式工作,或者使用 dataclasses backport 在Python 3.6中。

例子::

from dataclasses import dataclass

@dataclass
class CustomItem:
    one_field: str
    another_field: int

注解

在运行时不强制使用字段类型。

属性对象

2.2 新版功能.

attr.s() 允许使用字段名定义项类,以便 item exporters 默认情况下可以导出所有字段,即使第一个刮取的对象没有所有字段的值。

此外, attr.s 项目还允许:

  • 定义每个定义字段的类型和默认值。

  • 定义自定义字段 metadata ,可以用来 customize serialization .

为了使用此类型 attrs package 需要安装。

例子::

import attr

@attr.s
class CustomItem:
    one_field = attr.ib()
    another_field = attr.ib()

使用项目对象

声明项子类

项子类使用简单的类定义语法和 Field 物体。下面是一个例子:

import scrapy

class Product(scrapy.Item):
    name = scrapy.Field()
    price = scrapy.Field()
    stock = scrapy.Field()
    tags = scrapy.Field()
    last_updated = scrapy.Field(serializer=str)

注解

那些熟悉 Django 会注意到报废物品的声明类似于 Django Models 但是,由于不存在不同字段类型的概念,因此片段项要简单得多。


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

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

GMT+8, 2024-11-21 21:21 , Processed in 0.045285 second(s), 17 queries .

© 2001-2020

返回顶部