Generieren Sie nicht jedes Mal Kommunikation, wenn Sie mit read_json einen DataFrame aus einer Webressource erstellen
Ich möchte Informationen über die Web-API abrufen und verschiedene Dinge tun, aber die Anzahl der Anfragen ist begrenzt. Wenn ich jedes Mal darauf zugreife, werde ich bald in die Obergrenze geraten. Ich benötige beim Schreiben von Testcode keine Echtzeitinformationen, daher möchte ich diese lokal im Cache behalten.
import pandas as pd
import requests
import requests_cache
from io import StringIO
requests_cache.install_cache()
response = requests.get("https://financialmodelingprep.com/api/v3/income-statement/AAPL?apikey=demo")
content = response.content.decode()
df = pd.read_json(StringIO(content))
requests_cache
Wenn beim Abrufen von request.get
ein Cache vorhanden ist, wird keine Kommunikation ausgeführt und eine Antwort aus dem Cache zurückgegeben.
Sie können den Cache-Namen mit "request_cache.install_cache (" test ")" ändern und jeden einzelnen verwalten.
Das Caching erfolgt mit SQLite. Sie können den Cache löschen, indem Sie die Datei löschen.
StringIO
Da der Dateiname und die URL in "pd.read_json" angegeben sind, kann der durch Anforderungen erhaltene "str" nicht so angegeben werden, wie er ist.
Mit "StringIO (content)" können Sie "str" wie eine Datei behandeln.
Recommended Posts