阅读(4779) (0)

scrapy 2.3 使用dataclass项

2021-06-07 14:44:59 更新

默认情况下, dataclass items 创建时要求传递所有字段。在使用带有项加载器的dataclass项时,这可能是一个问题:除非将预先填充的项传递给加载程序,否则将使用加载程序的 ​add_xpath()​ , ​add_css()​ 和 ​add_value()​ 方法。

克服这个问题的一种方法是使用 ​field()​ 函数,带有 ​default​ 论点:

from dataclasses import dataclass, field
from typing import Optional

@dataclass
class InventoryItem:
    name: Optional[str] = field(default=None)
    price: Optional[float] = field(default=None)
    stock: Optional[int] = field(default=None)