KeyError:Python中的0当试图获取JSON数据时

时间:2017-10-25 01:31:36

标签: python json selenium

我正在使用selenium检查json请求中的值,我收到错误。我正在做的是首先登录,因为我无法得到响应,除非我已登录。然后我试图从json为用户获取余额并打印它,以便我可以看到它确实有效。它看起来像一个大黑客。

json看起来像这样:

{
  "account": {
     "balance": "28590",
     "status": "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)

这给了我这个错误信息:

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

我对登录没有任何问题。当我试图抓住平衡时,就是这样。我不确定这是否是正确的方法。我感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您应该使用firebase.auth().getRedirectResult() .then((result) => { return result.user; }).then((user) => { if (this.authRedirected) return; // Skip // Do stuff. this.authRedirected = true; // Mark redirected });

您不需要拥有0索引的数组。