如何使用垃圾加载器处理器处理长函数?

2024-04-19 23:51:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始使用条目加载器,在示例中,使用了诸如mapcosite这样的加载器处理器来清除文本,例如:

clean_text = Compose(MapCompose(lambda v: v.strip()), Join())   
test = ['item1', 'item2', 'item3']
clean_text(test)

它返回:

^{pr2}$

现在,我需要一个不同的输出,对于同一个输入,我需要用逗号分隔的数据,因为我使用的是.csv文件,所以我也引用了文本,以避免破坏格式。在

^{3}$

为此,我编写了一个函数:

def quote_field(text):
    text = ','.join([v.strip() for v in text ])
    return '"""' + text.strip() + '"""'

如何实现项目加载器?在


Tags: lambdacomposetexttest文本clean示例条目
1条回答
网友
1楼 · 发布于 2024-04-19 23:51:42

你很亲密。 首先,您应该了解Compose和{}类。Compose用于将某些函数应用于项列表,而{}则用于为项目列表中的每个项应用一些函数。在

所以你想要:

from scrapy.loader.processors import MapCompose, Compose, Join

clean_text = Compose(
    MapCompose(str.strip), # strip every item in list
    MapCompose(lambda item: f'"{item}"'),  # wrap every value in quotes
    Join(','),  # join all items in list as one using , as separator
)

如果你测试它:

^{pr2}$

相关问题 更多 >