[英]TypeError in Multiprocessing threads Python/ encoding
我在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'),我str(fsq_id)
相同的錯誤。 有什么辦法嗎?
你缺少尾隨,
:
t = threading.Thread(target=getter, args=(fsq_id,))
以下內容解釋為: t = threading.Thread(target=getter, args=('4', 'b', 'e', 'e', '8', '4', '9', '8', '3', '6', '8', '6', 'c', '9', 'b', '6', 'b', '7', '9', '4', '2', '4', '6', 'e'))
:
t = threading.Thread(target=getter, args=('4bee84983686c9b6b794246e'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.