Необработанные 2D таблицы в YAML (или в другом формате сериализации)

Я серьезно рассматриваю YAML как формат сериализации данных для моих приложений C/C++ (потому что моя первая цель состоит в том, чтобы файлы данных были как можно более читабельными и без как можно большего количества добавляемых дополнительных символов --ie: добавление скобок, запятых, или любой другой символ с особым значением должен быть сведен к минимуму).

YAML, кажется, является форматом, который наиболее точно соответствует моим требованиям (плюс возможность также сериализовать ссылки на указатели на объекты - через якоря).

Тем не менее, есть точка, где YAML, кажется, отходит от моей цели: 2D таблицы. В некоторых моих приложениях мне нужен доступ к табличным данным, которые часто публикуются в документах PDF (посмотрите на рисунок ниже в качестве гипотетического примера). В настоящее время мои приложения делают это с помощью специального анализатора, который автоматически распознает необработанные 2D-таблицы ASCII (воспринимайте их как CSV без запятых: пробел рассматривается как запятая, а символ новой строки - как начало новой строки в таблице). Это очень удобно, потому что я могу получить PDF с таблицей и в течение нескольких минут импортировать таблицу в свои приложения: преобразовать PDF в ASCII (с помощью pdftoolsнапример), и, возможно, сделать очень мало редактирования.

Но, AFAIK, YAML не может автоматически понимать двумерные таблицы в (табличной) удобочитаемой форме: сначала нужно преобразовать ее в (структуру полей) удобочитаемую форму. Это разрушает большую часть удовольствия, которого я пытался достичь, перейдя в YAML.

Обратите внимание, что мои приложения не только работают с таблицами, поэтому YAML идеально подходит для всего, кроме 2D таблиц.

Знаете ли вы какой-нибудь (возможно, нетривиальный) способ создания необработанной 2D-таблицы, понятной парсеру YAML? Или вы знаете какой-либо другой формат сериализации, который принимает необработанные 2D таблицы?

Ниже приведен пример изображения для гипотетической таблицы, с которой я привык работать (вы можете игнорировать тот факт, что он объединил ячейки в заголовки столбцов - у меня все нормально без объединенных ячеек, и фактически мой текущий синтаксический анализатор не не поддерживаю их, я просто редактирую их - если они существуют - до подачи данных в мои приложения).

0 ответов

Другие вопросы по тегам