Python - dostęp do wartości zagnieżdżonych w słownikach

Mam słownik zawierający słowniki, które mogą również zawierać słowniki, np.

dictionary = {'ID': 0001, 'Name': 'made up name', 'Transactions':
               {'Transaction Ref': 'a1', 'Transaction Details':
                  {'Bill To': 'abc', 'Ship To': 'def', 'Product': 'Widget A'
                      ...} ...} ... }

Obecnie rozpakowuję się, aby uzyskać „Bill To” dla ID 001, „Transaction Ref” a1 w następujący sposób:

if dictionary['ID'] == 001:
    transactions = dictionary['Transactions']
        if transactions['Transaction Ref'] == 'a1':
            transaction_details = transactions['Transaction Details']
            bill_to = transaction_details['Bill To']

Nie mogę nic na to poradzić, ale myślę, że jest to trochę niezgrabne, zwłaszcza ostatnie dwie linijki - czuję, że coś w stylu poniższych powinno działać:

bill_to = transactions['Transaction Details']['Bill To']

Czy istnieje prostsze podejście do zagnieżdżania słowników zagnieżdżonych bez konieczności rozpakowywania do zmiennych tymczasowych?

questionAnswers(3)

yourAnswerToTheQuestion