diff --git a/qiskit/aqua/operators/weighted_pauli_operator.py b/qiskit/aqua/operators/weighted_pauli_operator.py
index <HASH>..<HASH> 100644
--- a/qiskit/aqua/operators/weighted_pauli_operator.py
+++ b/qiskit/aqua/operators/weighted_pauli_operator.py
@@ -753,8 +753,11 @@ class WeightedPauliOperator(BaseOperator):
         if use_simulator_snapshot_mode:
             snapshot_data = result.data(
                 circuit_name_prefix + 'snapshot_mode')['snapshots']
-            expval = snapshot_data['expectation_value']['expval'][0]['value']
-            avg = expval[0] + 1j * expval[1]
+            avg = snapshot_data['expectation_value']['expval'][0]['value']
+            if isinstance(avg, (list, tuple)):
+                # Aer versions before 0.4 use a list snapshot format
+                # which must be converted to a complex value.
+                avg = avg[0] + 1j * avg[1]
         elif statevector_mode:
             quantum_state = np.asarray(result.get_statevector(circuit_name_prefix + 'psi'))
             for weight, pauli in self._paulis:
Fix weighted_pauli_operator for Aer <I>

Fixes change in the complex format of snapshot values in Aer <I> from a list [re, im] to a type complex.