2017-08-18 7 views
1

このコードでAPIを呼び出すが、JSON構造体を取得しようとしたときにエラーが発生するこのエラー:JSON構造体を取得しようとしたときに、「TypeError:リストインデックスが整数型でもスライスでもなく、ディクテーションでなければならない」

File " <ipython-input-8-59af996ee581> ", line 12, in result = results[result_id]

TypeError: list indices must be integers or slices, not dict

from client import RestClient 

client = RestClient("[email protected]", "xxxxxxxyyyyy") 
completed_tasks_response = client.get("/v2/srp_tasks_get") 
if completed_tasks_response["status"] == "error": 
    print("error. Code: %d Message: %s" % (completed_tasks_response["error"]["code"], completed_tasks_response["error"]["message"])) 
else: 
    results = completed_tasks_response["results"] 
    print(results) 
    for result_id in results: 
     result = results[result_id] 
     srp_response = client.get("/v2/srp_tasks_get/%d" % (result["142657080"])) 
     if srp_response["status"] == "error": 
      print("error. Code: %d Message: %s" % (srp_response["error"]["code"], srp_response["error"]["message"])) 
     else: 
      print(srp_response["results"]) 
+0

エラーは自己説明的です。その 'print(results)'(またはそれより長い場合はその一部)の結果を追加できますか? – wencakisa

+0

私は新しいコードです。これはjsonです:[{'' post_id ':' 1 '、' post_key ':' pasaje miami '、' task_id ':142657080、' se_id ':89、' loc_id ':1003325、' key_idトレースバック(最近の最後のコール):ファイル " ':28230120、' results_count ':565000、' result_extra ':' knowledge_graph '、' result_spell ':' '、' result_se_check_url ':' google.cl/...;}] "入力された文字列は整数でもなくスライスでなければなりません –

答えて

0

あなたはresultsは、辞書やない整数のリストで、エラーが言うように、あなたは(?なぜ)を解析しようとしている私たちにJSONを示すが、しないでくださいそれはあなたが期待していたようには見えません。

あなたがすべき次のいずれかresultsが含まれていることを

反復resultオーバー辞書:

for result in results: 
     srp_response = client.get("/v2/srp_tasks_get/%d" % (result["142657080"])) 
     ... 

それともAPIを正しく使用していることを確認してください。

+0

私はコードでこれは新しいです、これはjsonです:[{'' post_id ':'、 'input-8-59af996ee581>」、12行目、結果=結果[result_id] 1 '、' post_key ':' pasaje miami '、' task_id ':142657080、' se_id ':89、' loc_id ':1003325、' key_id ':28230120、' results_count ':565000、' result_extra ':' knowledge_graph '、 'result_spell': ''、 'result_se_check_url': 'https://google.cl/search?q=pasaje%20miami&hl=es-419&gws_rd=cr&uule=w+CAIQIFISCS-vJQRBxWKWETEJD0A81XWE'}] トレースバック(最新の最後のコール) : 結果でファイル ""、12行目では、=の結果は[result_idに] はTypeError:リスト指数は –

+0

が@JulioMoyanoBassoだから私の答えは動作するはずのdictない、整数またはスライスでなければなりません。また、 'result [" 142657080 "]の代わりに' result ['task_id'] 'を使用していることを確認してください。 – DeepSpace

関連する問題