Ich habe folgende ‚Arbeitnehmer‘, die anfänglich ein einziges JSON-Objekt zurückgegeben, aber ich mag es mehr JSON-Objekte zurück:Valueerror: zu viele Werte Multi Pool auspacken
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]
Dieser Arbeiter ist ein Parameter, für einen Multiprozessor-Pool:
cats, breeds = pool.map(data_worker, data, chunksize=1)
wenn ich auf den Pool und den Arbeiter mit nur einem Ausgang (dh _cats) laufen, es funktioniert gut, aber wenn ich versuche, mehrere JSON zurückzukehren „Schemata“, erhalte ich die Fehler :
File "crawl.py", line 111, in addFeedData
[cats, breeds] = pool.map(data_worker, data, chunksize=1)
ValueError: too many values to unpack
Wie kann ich zwei separate JSON-Objekte in data_worker zurückgeben? Ich brauche sie als separate JSON-Objekte. Beachten Sie, habe ich bereits versucht, die folgende, die nicht funktioniert hat:
[cats, breeds] = pool.map(data_worker, data, chunksize=1)
(cats, breeds) = pool.map(data_worker, data, chunksize=1)
return (_cats, _breeds)