write an sql query to retrieve the top 5 longest running results from the following table: runs, columns: id, distance, pace, route
SELECT * FROM runs ORDER BY distance DESC LIMIT 5;

This query works by sorting the rows by distance in descending order and returning the first 5 results. Because of how the rows have been sorted, the first 5 running results will be the longest.

Is there anything else you would like me to help you with?
write a python script to run this query and output the results as a list of Dictionaries
```python
from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import typing

engine = create_engine('sqlite:///runs.sqlite3')
Base = declarative_base()


class Runs(Base):
    __tablename__ = 'runs'

    id = Column(Integer, primary_key=True)
    distance = Column(Integer)
    pace = Column(String)
    route = Column(String)


Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()


def get_longest_runs(count: int) -> typing.List[typing.Dict]:
    # Query the database for the top 5 longest running results
    results = session.query(Runs).order_by(Runs.distance.desc()).limit(count).all()

    outputs = [
        dict(
            id=result.id,
            distance=result.distance,
            pace=result.pace,
            route=result.route
        )
        for result in results
    ]

    return outputs


print(get_longest_runs(5))

session.close()
```