【发布时间】:2012-05-30 12:24:49
【问题描述】:
我有一些从网站上抓取的项目,我将它们放入下面的 json 文件中
{
"author": ["TIM ROCK"],
"book_name": ["Truk Lagoon, Pohnpei & Kosrae Dive Guide"],
"category": "Travel",
}
{
"author": ["JOY"],
"book_name": ["PARSER"],
"category": "Accomp",
}
我想将它们存储在 csv 文件中,每行一个字典,其中每列一个项目如下
| author | book_name | category |
| TIM ROCK | Truk Lagoon ... | Travel |
| JOY | PARSER | Accomp |
我在一行中获取一本字典的项目,但所有列都合并了
我的pipeline.py 代码是
导入 csv
class Blurb2Pipeline(object):
def __init__(self):
self.brandCategoryCsv = csv.writer(open('blurb.csv', 'wb'))
self.brandCategoryCsv.writerow(['book_name', 'author','category'])
def process_item(self, item, spider):
self.brandCategoryCsv.writerow([item['book_name'].encode('utf-8'),
item['author'].encode('utf-8'),
item['category'].encode('utf-8'),
])
return item
【问题讨论】:
-
如果其中一个列表有多个成员会怎样?
-
如果您只有一位作者,为什么要使用列表,书籍会有多个名字吗?
-
我只是举了一个例子,实际上我列出了多个成员,所以当我运行上面的代码时,我得到“TypeError:List has no encode method”。当列表包含多个元素时如何执行此操作。当列表包含一项时,如何在每列中放置一项
-
@shivakrishna,你需要表明你要问这个问题两次和provide a link to the other question
标签: python csv dictionary scrapy pipeline