2014-02-11 41 views
0

下面的代碼工作,但只上載一個結果的索引按照下面,看到['result'][2]["text"] - 這上傳'text'結果在指數2完美:Python for循環發佈json到url?

with open("test.json") as json_file: 
    data = json.load(json_file) 
    connection.request('POST', '/1/batch', json.dumps({ 
     "requests": [{ 
      "method": "POST", 
      "path": "/1/classes/test", 
      "body": { 
       "playerName": data['results'][2]["text"], 
       "Url": data['results'][2]["Url"], 
       "Amount": data['results'][2]["Amount"] 
      } 
     }] 
    }) 

我怎樣才能通過所有的JSON結果的循環這裏([0]eof)而不必更改['results'][0]["text"],按回車鍵,['results'][1]["text"]按回車鍵,['results'][2]["text"]按回車等?

回答

0

一個簡單的for將解決這個問題:

with open("test.json") as json_file: 
    data = json.load(json_file) 
    for entry in data['results']: 
     connection.request('POST', '/1/batch', json.dumps({ 
      "requests": [{ 
       "method": "POST", 
       "path": "/1/classes/test", 
       "body": { 
        "playerName": entry["text"], 
        "Url": entry["Url"], 
        "Amount": entry["Amount"] 
       } 
      }] 
    }) 

如果你確實需要的索引號,您可以使用enumerate()功能:

for index, entry in enumerate(data["results"]): 
    # ... 

編輯:

如果'/1/batch'你的意思是'/2/batch'(如錯字),那麼你將需要使用enumerate()。例如:

with open("test.json") as json_file: 
    data = json.load(json_file) 
    for index, entry in enumerate(data['results']): 
     connection.request('POST', '/%d/batch' % (index), json.dumps({ 
      "requests": [{ 
       "method": "POST", 
       "path": "/%d/classes/test" % (index), 
       "body": { 
        "playerName": entry["text"], 
        "Url": entry["Url"], 
        "Amount": entry["Amount"] 
       } 
      }] 
    }) 
+0

我認爲OP確實需要索引號。查看他或她發佈的網址:/ 1 /批次 – audiodude