私はそれが簡単ではないにもかかわらず、全員が理解することを望んで、私は明確にしようとします。 私はPythonでコーディングの初心者ですので、すべての助けが素敵です! 私はそれらのlibrairies import:要求とスレッドを持っています。 私はデータの送信時間を短縮するためにいくつかのURLをparrallelで送信しようとしています。私はすべてのURLをスタックするために動的リストを使用し、それらを送信するためにrequests.postを使用しました。スレッドとダイナミックなリストのPythonでの問題
l=[]
if ALARM&1:
alarmType="Break Alarm"
AlarmNumber = 1
sendAlarm(alarmType, AlarmNumber)
print alarmType
else:
s = "https://..." #the url works
l.append(threading.Thread(target=requests.post, args=(s)))
if ALARM&2:
alarmType=0
if ALARM&4:
alarmType="Limit Switch"
AlarmNumber = 2
sendAlarm(alarmType, AlarmNumber)
print alarmType
else:
s="https://..."
l.append(threading.Thread(target=requests.post, args=(s)))
for t in l:
t.start()
for t in l:
t.join()
私が得たエラーは次のとおりです。スレッド2用
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
TypeError: post() takes at most 3 arguments (110 given)
そして同じ事、私は私の周りに尋ねたが、我々は解決策を見つけることができません。誰かがアイデアを持っているなら?ありがとう!
'args =(s、)'を使うとタプルを定義するのに十分ですが、周りに余分なカッコが必要ではないと思いますか?また、OPの問題の根本的原因である単一要素タプルでは、それをタプルにするためにカンマが必要であることを明確にする価値はあると私は考える。 – SiHa
@SiHa:良い点。 OPはセットを使用することを意図したが、その特定のポイントを逃した可能性が高い。 –
ありがとうJérômeその仕事!私はそれで時間を過ごしました!私はより慎重で、ドキュメントをもっと見ているべきです..もう一度ありがとう! – GarennePb