gpt4 book ai didi

python列表保留空项目

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:59 24 4
gpt4 key购买 nike

我有一个带有 4 个 div 的 HTML 正文,div 中有文本。我使用 Scrapy Selectors 删除文本并将其写入 csv。但是,如果 div 没有文本,选择器会跳过它。这很糟糕,因为结果需要匹配 csv 中的每一列。我需要空 div 来返回空字符串。

期望的结果是:

blah,blah,,blah

由于这个要求,这不起作用:

csvfile.writerow(Selector(text=Z).xpath('//div/text()').extract())

给予:

blah,blah,blah

其中 Z 是 html 正文。

当前代码是:

for sl in Selector(text=Z).xpath('//div'):
g = sl.xpath('./text()').extract()
jl.append(g)

csvfile.writerow(sum(jl,[]))

这几乎可以工作,但我得到了返回列表的列表:

[u'blah'],[u'blah'],[],[u'blah']

而不是想要的:

blah,blah,,blah

如果我试图展平列表:

csvfile.writerow(sum(jl,[]))

我回到了开始的地方,空字符串已从列表中删除。

blah,blah,blah

最佳答案

列表的列表应该足够了,还有一个步骤:

>>> e  = [u'blah'],[u'blah'],[],[u'blah']
>>> [i[0] if i else '' for i in e]
['blah', 'blah', '', 'blah']

如果您需要在一个字符串中包含所有这些元素:

>>> ','.join(i[0] if i else '' for i in e)
'blah,blah,,blah'

csv.writerow() 需要一个 list,所以我不确定您是否真的需要这里的字符串,但这里有两个选项。

关于python列表保留空项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com