Python theorytheory 0/50 · 0%
Web3 integration · medium

31. Working with JSON APIs (parsing, validation)

Structuring and validating data coming from RPC responses.

Blockchain RPC responses typically arrive as JSON. After `json.loads`, validate shape before trusting values, since malformed or partial data is common.

python
import json

def parse_block(raw: str) -> dict:
    data = json.loads(raw)
    required = {"number", "hash", "transactions"}
    missing = required - data.keys()
    if missing:
        raise ValueError(f"missing fields: {missing}")
    return data

Hex-encoded quantities (e.g. `"0x1a"`) are common in RPC payloads; convert with `int(value, 16)`. Always guard against `KeyError`/`json.JSONDecodeError` when parsing external data rather than assuming well-formed input.

Check your understanding

  1. 1. What does `required - data.keys()` compute?

  2. 2. How do you convert a hex RPC value like "0x1a" to an int?

  3. 3. Which exception should you guard against for malformed JSON text?