У меня проблемы с анализом вложенных массивов, возвращаемых Psycopg2.БД, над которой я работаю, возвращает записи, которые могут иметь вложенный массив в качестве значения.Psycopg анализирует только внешний массив таких значений.
Моим первым подходом было разбиение строки на запятые, но потом я столкнулся с проблемой, что иногда строка в результате также содержит запятые, что делает весь подход непригодным,Моей следующей попыткой было использование регулярного выражения для поиска «компонентов» в строке, но потом я заметил, что не смог обнаружить числа (поскольку числа также могут встречаться в строках).
В настоящее время это мой код:
import re
text = '{2f5e5fef-1e8c-43a2-9a11-3a39b2cbb45e,"Marc, Dirk en Koen",398547,85.5,-9.2, 62fe6393-00f7-418d-b0b3-7116f6d5cf10}'
r = re.compile('\".*?\"|[\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12}|^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$')
result = r.search(text)
if result:
result = result.groups()
Результат должен быть следующим:
['2f5e5fef-1e8c-43a2-9a11-3a39b2cbb45e', 'Marc, Dirk en Koen', 398547, 85.5, -9.2, '62fe6393-00f7-418d-b0b3-7116f6d5cf10']
Поскольку я хотел бы, чтобы эта функциональность была универсальной, я не могу быть уверен в порядке аргументов.Я знаю только, что поддерживаемые типы - это строки, целые числа со знаком uuid, (со знаком) и десятичные числа со знаком.
Использую ли я неправильный подход?Или кто-нибудь может указать мне правильное направление?
Заранее спасибо!