Ich folge einem Udemy Tutorial auf Bokeh und ich bin auf einen Fehler gestoßen, den ich nicht herausfinden kann, wie man löst, und habe keine Antwort vom Tutor erhalten. Anfangs dachte ich, dass etwas mit meinem Code nicht in Ordnung wäre, also verbrachte ich ungefähr eine Woche damit, es herauszufinden und schließlich den Tutor-Code nachzugeben und zu kopieren, nur um festzustellen, dass der Fehler weiterhin besteht.Bokeh Fehler vom periodischen Rückruf
Der Code dient zum Erstellen und Plotten von Live-Daten. Code unten:
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource, DatetimeTickFormatter
from bokeh.plotting import figure
from random import randrange
import requests
from bs4 import BeautifulSoup
# Create the figure
f = figure()
# Create webscraping function
def extract_value():
r = requests.get("https://bitcoincharts.com/markets/okcoinUSD.html", headers = {'User-Agent' : 'Chrome'})
c = r.content
soup = BeautifulSoup(c, "html.parser")
value_raw = soup.find_all("p")
value_net = float(value_raw[0].span.text)
return value_net
# Create ColumnDataSource
source = ColumnDataSource(dict(x = [], y = []))
# Create glyphs
f.circle(x = 'x', y = 'y', color = 'olive', line_color = 'brown', source = source)
f.line(x = 'x', y = 'y', source = source)
# Create periodic funtion
def update():
new_data = dict(x = [source.data['x'][-1]+1], y = [extract_value])
source.stream(new_data, rollover = 200)
print(source.data) # Displayed in the commmand line!
# Add a figure to curdoc and configure callback
curdoc().add_root(f)
curdoc().add_periodic_callback(update, 2000)
Welche werfen wird:
Fehler von periodischen Rückruf geworfen: Indexerror ('Listenindex aus Bereich')
Irgendwelche Ideen auf, was los ist Hier?
Ich folgte dem gleichen Tutorial und es verwendet eine ältere Version von Bokeh. Es ist möglich, dass die Syntax in der Zwischenzeit geändert wurde. Bokeh ist von diesem Standpunkt aus sehr "dynamisch". Ich sehe, dass mit den neuesten BeautifulSoup und Bokeh es wegen eines Fehlers in BeSoup (_html5lib.py) nicht funktioniert. Welche Version verwenden Sie jetzt? Hast du versucht, den vom Ausbilder verwendeten zu installieren? Auf welcher Zeile gibt es einen Fehler? –