Как мне читать и писать с помощью msgpack?
Как мне сериализовать / десериализовать словарь data
с msgpack?
1 ответ
Решение
Документы на Python, кажется, не очень хороши, так что вот моя попытка.
Монтаж
pip install msgpack
Чтение и запись 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: существует тоже * вздох * ( чтение и запись)
Для вашего приложения может быть важно следующее:
- Поддержка другими языками программирования
- Чтение / запись производительности
- Компактность (размер файла)
Смотрите также: Сравнение форматов сериализации данных
Если вы предпочитаете создавать конфигурационные файлы, вы можете прочитать мою короткую статью Конфигурационные файлы в Python