Как достать нужную инфу из списка json'ов который на самом деле строка?

У меня есть dataframe с полем типа string, которое выглядит как список json'ов (может содержать от 1-го до 9 элементов json всегда одного формата id1, id2, date).

пример: [{'id1': 'A', 'id2': 'B', 'date': '2021-08-01'}, {'id2': 'B', 'date': '2021-08-02', 'id1': 'A'}].

Нужно обработать случаи, когда в списке два элемента. Для каждого элемента df сравнить id1 в первом элементе списка с id2 во втором, например. Как можно это адекватно сделать? Мб можно сделать из этой строки настоящий список json'ов? Попытаться достать какими-нибудь регулярками(но здесь лично у меня возникают проблемы из-за присутсивя символов одинарных ковычек + на большом датафрейме кажется не быстрым)?

UPD: сам df достаточно большой и с очень большим количеством столбцов, основные это date, type, op_id, status, desc итд поле desc - то с которым нужно работать. Можно и в отдельный распарсить, если подскажете как, но главное чтобы была тогда возможность информацию, полученную из каждой строки нового датафрейма, смэтчить обратно с df по op_id :)

df = pd.DataFrame([{'op_id':'1', 'desc':"[{'id1': 'A', 'id2': 'B', 'date': '2021-08-01'}, {'id2': 'B', 'date': '2021-08-02', 'id1': 'A'}]"}, 
{'op_id':'2', 'desc':"[{'id1': 'C', 'id2': 'D', 'date': '2021-08-02'}]'"}, 
{'op_id':'3', 'desc':"[{'id1': 'A', 'id2': 'D', 'date': '2021-07-02'}]"}])

Ответы (0 шт):