При использовании решателя zmdp из здесь я натолкнулся на странный формат файла, которого я раньше не видел, он использует =>
для назначения.Я не смог выяснить, какой это был формат из документации к пакету (он говорит, что это «политический» формат, но он должен основываться на чем-то более общем)
{
policyType => "MaxPlanesLowerBound",
numPlanes => 7,
planes => [
{
action => 2,
numEntries => 3,
entries => [
0, 18.7429,
1, 18.7426,
2, 21.743
]
},
### more entries ###
{
action => 3,
numEntries => 3,
entries => [
0, 20.8262,
1, 20.8261,
2, 20.8259
]
}
]
}
Я много исследовало том, что было бы простым способом для анализа таких файлов (в Python), а также прочитайте это сообщение в блоге , которое имеет огромное разнообразие вариантов лексирования и синтаксического анализа (инструменты, которые выглядели наиболее многообещающими для моего примера, казалисьбыть скупым и сарказмом ).
Однако при любых решениях, которые я могу придумать, мне просто кажется, что я заново изобретаю колесо, а лексизм и разбор кажутсяизлишним для того, что я пытаюсь сделать.
Я также нашел этот вопрос stackoverflow, который, по совпадению, кажется, также связан с форматом, который использует =>
.Однако, будучи ленивым и минималистичным, когда дело доходит до кода, мне не очень нравится решение регулярных выражений.Мои интуитивные ощущения говорят мне, что должно быть решение из 3-4 строк, чтобы записать входной файл в python dict или аналогичный полезный формат.В частности, я подозреваю, что это уже стандартный синтаксис некоторого формата, о котором я просто не знаю (это явно не CSV, JSON, YAML или XML)
Вопрос , следовательно, таков:Выше приведен стандартный формат файла, и если да, что это?
Если нет, то как мне элегантно и компактно проанализировать этот файл в Python3, т.е. без регулярного выражения для каждого ключевого слова?