Если строка сформирует допустимый документ json, вы можете использовать (вам, вероятно, просто нужно добавить '[' и ']' в начале / конце строки:
import json
str2="""[{"_id":"1231","address":"akjd-dfdkfj","body": "Your one time password is sdkd. Enter this in the form to confirm your value.","date":"Thu May 10 23:34:11 GMT+05:30 2018"},{"_id":"1245","address":"sdsd-dgfg","body":"Dear Customer, Reference number is 3435.To check latest status, sms DROP DFGDG on 38388338. Thank you, ABC","date":"Thu May 10 13:22:54 GMT+05:30 2018"}]"""
>>> json.loads(str2, encoding='UTF8')
result_dicts=json.loads(str2)
А затем "объединить" словари в один, например:
result_dict= dict()
for res_dict in result_dicts:
for key, value in res_dict.items():
result_dict.setdefault(key, list()).append(value)
Но если ваша примерная строка действительно выглядит в вашем описании, она не является допустимой строкой json из-за неправильного использования двойных кавычек (например, в "Ваш одноразовый пароль -" sdkd ". Введите это в форму для подтверждения ваша ценность. "), вам нужно разобрать ее самостоятельно.
Чтобы применить регулярное выражение, нужно сделать некоторые предположения, чтобы разрезать строку на правильные части. Например. Можно ли предположить, что значение поля всегда заключено в двойные кавычки?
Или вы можете предположить, что значение поля никогда не содержит комбинаций символов <",> и <"}> (я использую <> для ограничения строки)?
Если это так, вы можете построить свое регулярное выражение таким образом, чтобы оно вырезало подстроки, разделенные одной из этих строк, чтобы получить имя поля и значение поля. Без таких предположений вы не сможете решить проблему.