vlakhvo
@vlakhvo
front-end developer

В каком формате хранить данные (мелкий конфиг) в python?

Хочу хранить данные, для sublime плагина, в текстовом файле. Какую структуру данных лучше всего выбрать? JSON норм?
  • Вопрос задан
  • 605 просмотров
Решения вопроса 2
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Ну для python уже есть формат для конфигов: это встроенный тип dictionary.

Вы же пишите код на Python и только на нем. За пределами же конфиг ни где не будет использоваться, тогда зачем еще какие-то форматы, когда можно воспользоваться его родными типами?
Ответ написан
Комментировать
urtow
@urtow
*nix, python, QA, bagpipe, folk music
JSON, YAML.

Для ценителей ini

Главное не XML :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kolchev
Поддерживаю предыдущий ответ. Да, json это отличный мультиязычный инструмент и при наличии gui для пользователя взаимодействие с данными будет максимально комфортным.
Если gui не вариант и нужны обязательно читаемые конфиги, то можно использовать ini или более современную его версию toml. Если их возможностей не хватает то есть yaml,, но лично я считаю что для пользователей он уже будет сложным и уж лучше использовать форматированный json. Для python3 можно посмотреть библиотеку sd-format, работающую со своим форматом текстовой записи данных .sd
К минусам можно отнести её малую известность, отсутствие поддержки для python2, а к плюсам: хорошие возможности, с приоритетом на читабельность, минимум использования служебных символов. В качестве значений можно использовать списки и словари. Простые можно записывать в строку, сложные в столбец. Можно записывать многострочное значение строки. К полезным фишкам можно отнести возможность использовать не только сами данные, но и комментарии к данным. Вот сама библиотека, там есть описание sd-formatsd-format.
Кстати, есть вариант использовать комбинированный вариант: ini + json. Такой вариант сильно расширит возможности записи в файлы конфигурации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы