私は当初、単一JSONオブジェクトを返し、次の「労働者」を持っていますが、私はそれが複数のJSONオブジェクトを返すしたいと思います:とValueError:マルチプロセッシングプールを展開するためにあまりにも多くの値
def data_worker(data):
_cats, index, total = data
_breeds = {}
try:
url = _channels['feedUrl']
r = get(url, timeout=5)
rss = etree.XML(r.content)
tags = rss.xpath('//cats/item')
_cats['breeds'] = {}
for t in tags:
_cats['breeds']["".join(t.xpath('breed/@url'))] = True
_breeds['url'] = "".join(t.xpath('breed/@url'))
return [_cats, _breeds]
except:
return [_cats, _breeds]
この労働者はパラメータであり、マルチプロセッシング・プール用:
cats, breeds = pool.map(data_worker, data, chunksize=1)
私はただ一つの出力(すなわち_cats)をプールし、労働者を実行すると、それだけで正常に動作しますが、私は、複数のJSONを返すしようとすると、「スキーマを、」私はエラーを取得します:
File "crawl.py", line 111, in addFeedData
[cats, breeds] = pool.map(data_worker, data, chunksize=1)
ValueError: too many values to unpack
data_workerで2つの別々のJSONオブジェクトを返すにはどうすればよいですか?私はそれらを別々のJSONオブジェクトにする必要があります。 data_worker
返すので、
cats, breeds = pool.map(data_worker, data, chunksize=1)
しかし、いずれにせよ、これは動作しません:すべての
[cats, breeds] = pool.map(data_worker, data, chunksize=1)
(cats, breeds) = pool.map(data_worker, data, chunksize=1)
return (_cats, _breeds)