Как сериализовать/десериализовать словарь data
с помощью msgpack?
Как читать и писать с помощью msgpack?
Ответ 1
Документы Python, кажется, не так хороши, так что вот моя попытка.
Установка
pip install msgpack-python
Чтение и запись msgpack
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import msgpack
# Define data
data = {'a list': [1, 42, 3.141, 1337, 'help'],
'a string': 'bla',
'another dict': {'foo': 'bar',
'key': 'value',
'the answer': 42}}
# Write msgpack file
with open('data.msgpack', 'w') as outfile:
msgpack.pack(data, outfile)
# Read msgpack file
with open('data.msgpack') as data_file:
# data_loaded = json.load(data_file)
data_loaded = msgpack.unpack(data_file)
print(data == data_loaded)
Альтернативы
- CSV: супер простой формат (чтение и запись)
- JSON: Приятно писать человекочитаемые данные; ОЧЕНЬ широко используется (читать и писать)
- YAML: YAML является надмножеством JSON, но легче читать (читать и писать, сравнение JSON и YAML)
- pickle: формат сериализации Python (чтение и запись)
- MessagePack (Пакет Python): Подробнее компактное представление (чтение и запись)
- HDF5 (Пакет Python): Ницца для матриц (читать и писать)
- XML: существует слишком * sigh * (читать и написать)
Для вашего приложения может быть важно следующее:
- Поддержка другими языками программирования
- Производительность чтения/записи
- Компактность (размер файла)
Смотрите также: Сравнение форматов сериализации данных
Если вы скорее ищете способ создания файлов конфигурации, вы можете прочитать мою короткую статью Конфигурационные файлы в Python