from typing import List
from typing import Dict


def filter_by_symbol(assets: List[Dict], symbols: List) -> List:
    """ Filter the wanted assets, returning a list of assets ordered in the same was as the symbols list.
    If one asset is not available, throw an exception.
    """
    filtered_assets = []
    found = False
    for symbol in symbols:
        for asset in assets:
            if asset['symbol'].lower() == symbol.lower():
                filtered_assets.append(asset)
                found = True
                break
        if not found:
            raise Exception(f'Asset with symbol {symbol} not found in the provided list.')
    return filtered_assets