Какой формат структурированного текста лучше всего поддерживается в Python? - PullRequest
0 голосов
/ 02 октября 2010

Этот вопрос может рассматриваться как субъективный, но я хотел бы спросить пользователей SO, какой общий формат структурированных текстовых данных лучше всего поддерживается в Python.

Мой первоначальный выбор:

  • XML
  • JSON
  • и YAML

С какой из этих трех легче всего работать в Python (т. Е. Имеет лучшую поддержку / производительность библиотеки).... или есть другой формат, который я не упомянул, который лучше поддерживается в Python.

Я не могу использовать только формат Python (например, Pickling), так как взаимодействие очень важно, но большая часть кода, которыйдескрипторы этих файлов будут написаны на Python, поэтому я стремлюсь использовать формат, который имеет самую сильную поддержку в Python.

CSV или фиксированный текст столбца также могут быть жизнеспособными для большинства случаев использования, однако я быЯ предпочитаю гибкость более масштабируемого формата.

Спасибо

Примечание

Что касается взаимодействия, я буду изначально генерировать эти файлы из Ruby, используя Builder, однако Ruby будетNне буду снова использовать эти файлы.

Ответы [ 4 ]

4 голосов
/ 02 октября 2010

Я бы пошел с JSON, я имею в виду, что YAML - это круто, но взаимодействие с ним не так уж и хорошо.
XML - просто ужасный беспорядок, чтобы смотреть на , а слишком много жира.

Python имеет встроенный модуль JSON начиная с версии 2.6.

3 голосов
/ 02 октября 2010

JSON имеет отличную поддержку Python, и он намного более компактен, чем XML (и API, как правило, более удобен, если вы просто пытаетесь выгрузить и загрузить объекты). Я не знаю никакой поддержки YAML, хотя я на самом деле не проверял. В резюме я бы предложил использовать JSON из-за низких издержек формата и широкого спектра языковой поддержки, но это немного зависит от вашего приложения - если вы работаете в пространстве, где уже установлены приложения, форматы они могут быть предпочтительнее, даже если они технически несовершенны.

1 голос
/ 02 октября 2010

Я думаю, это во многом зависит от того, что вам нужно делать с данными.Если вы собираетесь создавать сложную базу данных и выполнять ее обработку и преобразования, я подозреваю, что вам лучше использовать XML.Я нашел модуль lxml довольно полезным в этом отношении.Он имеет полную поддержку таких стандартов, как xpath и xslt, и эта поддержка реализована в собственном коде, поэтому вы получите хорошую производительность.

Но если вы делаете что-то более простое, то, вероятно, вам будет лучшеотключить использование более простого формата, такого как yaml или json.Я слышал рассказ о «преобразованиях json», но не знаю, насколько зрелой является технология или насколько развит доступ Python к ней.

0 голосов
/ 02 октября 2010

Это почти все то же самое, из этих трех.Используйте то, с чем легче взаимодействовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...