1

我写了一个蜘蛛来爬过一个网页(在我从这里得到的所有帮助下),它返回具有所有必需属性的项目。它返回格式为 {"count": 24, "Gender": "Female", "Age": "25-34", "Location": "Edinburgh", "Name": "abcde"} 的字典

我希望它只返回一个列表,如:[24, "Female", "25-34", "Edinburgh", "abcde"]

然后我可以将其存储在文件中。我怎样才能做到这一点 ?

编辑:但我无法返回字典值。如果我使用 return item.values() 我得到错误... Spider 必须返回 Request、BaseItem 或 None 得到 unicode

4

2 回答 2

3

我可能误解了这个要求,但是如果你希望你的输出文件看起来更像一个列表而不是字典,那么也许你应该输出一个 csv 文件而不是 json 文件?csv 提要导出使用CSVItemExporter类,并将生成以下形式的输出:

count,Gender,Age,Location,Name 
24,Female,25-34,Edinburgh,abcde

应该可以通过运行以下命令来实现这一点:

scrapy crawl dmoz -o items.csv -t csv

如果要生成不带标题的输出,则需要子类 CSVItemExporter 并将include_headers_line参数设置为 False,因为该参数的默认值为 True。

于 2013-01-03T18:17:34.313 回答
1

您只能从字典中提取值并做任何您想做的事情:

>>> d = {"count": 24, "Gender": "Female ", "Age": "25-34", "Location": "Edinburgh", "Name": "abcde"}
>>>
>>> d.values()
[24, 'Female ', '25-34', 'Edinburgh', 'abcde']
于 2013-01-03T16:43:52.687 回答