Ich verwende Selen, um einen Wert in einer JSON-Anfrage zu überprüfen, und ich bekomme einen Fehler. Was ich mache, ist zuerst einloggen, da ich keine Antwort bekomme, wenn ich nicht eingeloggt bin. Dann versuche ich, eine Waage aus dem JSON für den Benutzer zu holen und es zu drucken, damit ich sehen kann, dass es tatsächlich funktioniert hat. Es sieht wie ein großes Nö.KeyError: 0 in Python beim Versuch, JSON-Daten zu erhalten
Die json sieht wie folgt aus:
{
"account": {
"balance": "28590",
"status": "0"
}
}
Und hier ist mein Code:
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)
Welche mir diese Fehlermeldung gibt:
Traceback (most recent call last):
File "pointsCheck.py", line 31, in <module>
balance = json_data['account'][0]['balance']
KeyError: 0
Ich habe nicht Probleme mit dem Login. Es ist alles, wenn ich versuche, das Gleichgewicht zu finden. Ich bin mir nicht sicher, ob das überhaupt der richtige Weg ist. Ich schätze jede Hilfe.
Warum denken Sie, dass "account" eine Sequenz enthält? –
Sieht so aus, als sollte es nur sein 'json_data ['account'] ['balance']' ... – mgilson
@ IgnacioVazquez-Abrams Ich hatte ein Tutorial gesehen und sie erklärten, dass ich das brauchte, aber ich sehe, dass jeder sagt, dass das ist Das erste, was falsch ist. – drock