0

Python コードに次のエラーが表示されます。

if data['result'] == 0:
TypeError: list indices must be integers, not str

以下はコードです:

data = urllib.urlencode(parameters)
req = urllib2.Request(url, data)
try:
    response = urllib2.urlopen(req)
except urllib2.URLError, e:
    self.redirect('/error')
json_post = response.read()
data = json.loads(json_post)
response_dict = simplejson.loads(json_post)

virustotal = VirusTotal()
if data['result'] == 0:
    virustotal_result = True

elif data['result'] == -2:
    self.response.out.write("API Request Rate Limit Exceeded<br/>")
elif data['result'] == -1:
    self.response.out.write("API Key provided is wrong<br/>")
elif data['result'] == 1:
    self.response.out.write("Time Stamp : %s<br/>"% data['report'][0])

データがリストであることは知っています。そのため、整数にも変更しましたが、コードは範囲エラーを示しました。助けてください??

4

2 に答える 2

1

と言うとdata = json.loads(json_post)、期待しているように見える口述ではなく、リストを取得したように聞こえます。

これが問題でない場合は、完全なトレースバックと の値で更新してみてくださいjson_post

于 2013-04-29T17:15:57.023 に答える
1

からオブジェクトの配列を取得してresponse.readいます。これは、 Python を取得していることを意味しますlist。これを試して:

 data = json.loads(json_post)[0]
于 2013-04-29T17:16:19.377 に答える