Сериализация


Python предоставляет встроенные библиотеки JSON для кодирования и декодирования JSON.

В Python 2.5 используется модуль simplejson, тогда как в Python 2.7 используется модуль json. Поскольку этот интерпретатор использует Python 2.7, мы будем использовать json.

Чтобы использовать модуль json, его необходимо сначала импортировать:

import json
1
импортировать json
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

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

Чтобы загрузить JSON обратно в структуру данных, используйте метод «load». Этот метод принимает строку и превращает ее обратно в структуру данных объекта json:

import json print(json.loads(json_string))
1
2
импортировать json
печать ( json . загружает ( json_string ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Чтобы закодировать структуру данных в JSON, используйте метод «дампов». Этот метод принимает объект и возвращает строку:

import json json_string = json.dumps([1, 2, 3, "a", "b", "c"]) print(json_string)
1
2
3
импортировать json
json_string = json . дампы ([ 1 , 2 , 3 , «a» , «b» , «c» ])
печать ( json_string )
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Python поддерживает собственный метод сериализации данных Python под названием pickle (и более быструю альтернативу под названием cPickle).

Вы можете использовать его точно так же.

import pickle pickled_string = pickle.dumps([1, 2, 3, "a", "b", "c"]) print(pickle.loads(pickled_string))
1
2
3
импортный рассол
pickled_string = рассол . дампы ([ 1 , 2 , 3 , «a» , «b» , «c» ]
)
печать ( рассол . загружает ( pickled_string ))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
В 1]:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1/0 0/0

Цель этого упражнения - распечатать строку JSON с добавленной к ней парой "ключ-значение" "Me": 800.