Вы можете использовать встроенную библиотеку json
, чтобы попытаться загрузить обычный JSON, если не получится (не правильный «обычный» формат), попробуйте затем с помощью: jsonlines .
Ваше текущее решение не является неправильным, но имеет недостаток, заключающийся в том, что вы должны анализировать (вручную) всю строку, чтобы проверить, является ли формат или нет, я предлагаю делегировать эту работу во встроенной библиотеке json
.
Пример:
import json
import jsonlines
loaded_data = {}
try:
loaded_data = json.loads(json_data)
except ValueError as err:
try:
# Try to read the data here with.
lines = json_data.split('\n')
reader = jsonlines.Reader(lines)
# ...
# Add values to loaded_data.
except jsonlines.InvalidLineError as err:
# .. Handle error here.
finally:
# Work with loaded_data