私はそのようなPythonのリストを持っています:
>>> print chunked_fsq_ids
[u'4bee84983686c9b6b794246e', u'4cbfb9f10d22ef3bc4e12c70', u'4b570230f964a520aa2228e3', u'51fd214d454ab82ac66e1211', u'4baf22eef964a5201ced3be3']
マルチスレッドプロセスを作成したい:
def getter(id):
print id
for fsq_id in chunked_fsq_ids:
t = threading.Thread(target=getter, args=( fsq_id ))
t.start()
threads.append(t)
map(lambda t: t.join(), threads)
ただし、(ループされた) TypeError を受け取ります:
Exception in thread Thread-461:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 761, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: getter() takes exactly 1 argument (24 given)
それぞれfsq_id
が24文字なので、リストを出しているようなものです。
エンコーディングに問題がありますか、それともスレッドから何かを見逃していますか? fsq_id
ですUnicode
。_ str(fsq_id)
ただし、「fsq_id.encode('utf-8')」でも同じエラーが発生します。解決策はありますか?