forループに配列の値を追加していますが、ループ内に同じ値を繰り返し追加しています。ここ は私のコードです:キーペア配列ループのpythonで同じ値を追加
for document in activityData:
activityInfo.append(document)
for document in activityInfo:
actRegCount = actregM.countAppliedReg(str(document['_id']),timeInt)
if (not document['owner'] in ownerIds) and (document['deleted']==0):
ownerIds['a']=str(document['owner'])
ownerIds['b']=actRegCount
ownerIds['c']=0
array.append(ownerIds)
と
for document in jobData:
jobInfo.append(document)
for document in jobInfo:
jobApplyCount = jobApplyM.countAppliedJob(str(document['_id']),timeInt)
if (not document['owner'] in ownerIds) and (document['deleted']==0):
ownerIds['a']=str(document['owner'])
ownerIds['b']=0
ownerIds['c']=str(jobApplyCount)
array.append(ownerIds)
が、それは何度も何度も同じ値を追加します。
は出力:
[{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'},
{'a': '55a646a1874183dc018b4567', 'b': 0, 'c': '0'}]
私のpythonに新しいですので、それは愚かな誤りであるかもしれません。どんな提案も大歓迎です。
あなた 'array.append(ownerIds)は' '外if'文です。これは、条件がfalseを返す場合、同じ値を配列に追加することを意味します。 – kuro
また、 'document ['owner']'を 'ownerIds ['a']'に入れます。だから、ownerIdsのドキュメント['owner']は常にfalseを返してはいけませんか? – kuro
@kuro thnkxに助けがありましたが、あなたの最後のコメントを理解できませんでした。あなたはもっと多くのplz – Vivek