0

このタイプの JSON ドキュメントがあります。

{ 
  name : 'John',
  age : 30,
  counts : [
    {day : monday, pay : 75, extra : 33} ,
    {day : tuesday, pay : 69, extra : 12} ,
    {day : sunday, pay : 42, extra : 0}  ]
 }

それらを反復してアクションを実行したい。繰り返しの試みとして、変数「a」を作成しました。

x = [2, 67, 53, 21, 5, ... ... ]

for i in db.docs.find():
    a = 0
    while a <= len(i['counts']):
        ...
        x.append(i['counts'][a]['extra']) 
        ...
        total = ...
        ...
        a = a + 1
        db.docs.update({'id': i['id']}, {'$set':{"counts.a.total":total}})

Python が "a" をリストのインデックスとして受け入れるようにするにはどうすればよいですか? ご協力ありがとうございました。

これはエラーメッセージです:

Traceback (most recent call last):
    x.append(i['counts'][a]['extra'])
IndexError: list index out of range
4

1 に答える 1

0

for ループを使用できます。

for element in i['counts']:
    ...
    x.append(element['extra'])

while ループを使用する必要がある場合は、インデックスが厳密に長さよりも小さいことを確認してください。

while a < len(i['counts']):
于 2012-12-03T17:50:54.787 に答える