Simple test
Run this test on a WiFi capable CircuitPython device to ensure it works.
examples/json_stream_simpletest.py
1# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
2# SPDX-FileCopyrightText: Copyright (c) 2023 Scott Shawcroft for Adafruit Industries
3#
4# SPDX-License-Identifier: Unlicense
5
6import ssl
7import time
8
9import adafruit_requests
10import socketpool
11import wifi
12
13import adafruit_json_stream as json_stream
14
15pool = socketpool.SocketPool(wifi.radio)
16session = adafruit_requests.Session(pool, ssl.create_default_context())
17
18SCORE_URL = "http://site.api.espn.com/apis/site/v2/sports/baseball/mlb/scoreboard"
19
20while True:
21 resp = session.get(SCORE_URL)
22 json_data = json_stream.load(resp.iter_content(32))
23 for event in json_data["events"]:
24 if "Seattle" not in event["name"]:
25 continue
26 for competition in event["competitions"]:
27 for competitor in competition["competitors"]:
28 print(competitor["team"]["displayName"], competitor["score"])
29 resp.close()
30 time.sleep(60)
CPython test
Run this with python examples/json_stream_local_file.py <filename> to test in
CPython.
examples/json_stream_simpletest.py
1# SPDX-FileCopyrightText: Copyright (c) 2023 Scott Shawcroft for Adafruit Industries
2#
3# SPDX-License-Identifier: Unlicense
4
5import sys
6
7import adafruit_json_stream as json_stream
8
9# import json_stream
10
11
12class FakeResponse:
13 def __init__(self, file):
14 self.file = file
15
16 def iter_content(self, chunk_size):
17 while True:
18 yield self.file.read(chunk_size)
19
20
21f = open(sys.argv[1], "rb")
22obj = json_stream.load(FakeResponse(f).iter_content(32))
23
24currently = obj["currently"]
25print(currently)
26print(currently["time"])
27print(currently["icon"])
28
29for i, day in enumerate(obj["daily"]["data"]):
30 print(day["time"], day["summary"], day["temperatureHigh"])
31 if i > 6:
32 break
33
34for source in obj["flags"]["sources"]:
35 print(source)