2017-10-25 13 views
0

jsonリクエストの値をチェックするためにセレンを使用していますが、エラーが発生しています。私がやっていることは、私がログインしていない限り、私は応答を得ることができないので、最初にログインしています。そして、ユーザーのためにjsonからバランスをとって、実際に働いていることを確認できるように印刷しようとしています。それは大きなノーブルのように見えます。KeyError:0 PythonでJSONデータを取得しようとしたとき

JSONは次のようになります。

{ 
    "account": { 
    "balance": "28590", 
    "status": "0" 
    } 
} 

そしてここでは私のコードです:私はいずれかを持っていないよ

Traceback (most recent call last): 
File "pointsCheck.py", line 31, in <module> 
balance = json_data['account'][0]['balance'] 
KeyError: 0 

from selenium import webdriver 
import openpyxl 
import json 
import requests 

driver = webdriver.Firefox(executable_path= r"geckodriver path") 
baseURL = 'url' 

#Get username/password from excel sheet 
workbook = openpyxl.load_workbook(r"xlsx") 
sheet = workbook.get_sheet_by_name('Sheet1') 
username = str(sheet['A1'].value) 
password = str(sheet['B1'].value) 

#Open browser 
driver.get(baseURL) 
driver.maximize_window() 

#Login 
driver.find_element_by_xpath('xpath').click() 
driver.implicitly_wait(500) 
driver.find_element_by_id('email').send_keys(username) 
driver.find_element_by_id('password').send_keys(password) 
driver.find_element_by_id('login').click() 

#Check balance 
balance_api = 'balance/json' 
json_data = requests.get(balance_api).json() 
balance = json_data['account'][0]['balance'] 
print(balance) 

私にこのエラーメッセージを与えますログインに関する問題。私がバランスを取ろうとすると、それはすべてです。これが正しい方法であるかどうかはわかりません。私はどんな助けにも感謝します。

+1

なぜ 'account'にはシーケンスが含まれていると思いますか? –

+0

@ jn_data ['account'] ['balance'] '... – mgilson

+0

@ IgnacioVazquez-Abrams私はチュートリアルを見て、私はそれが必要だと説明しましたが、誰もが最初は間違っています。 – drock

答えて

1

あなたはそれはあなたが0のインデックスを持っている必要が配列ではありませんjson_data['account']['balance']

を使用する必要があります。

+0

[0]を削除しましたが、今度はKeyError: 'balance'と書いてあります – drock

+0

json_data ['account']の出力を確認して、ここに投稿できますか? –

+0

私はこれを行うとjsonを取得しますが、ログアウトしてアクセスしようとするとエラーが表示されます。だから私はそれにアクセスするのに十分なほど待っていないのかどうかわからないのですか? – drock

関連する問題