Как записать словарь в файл python
Перейти к содержимому

Как записать словарь в файл python

  • автор:

Чтение и сохранение в файл списков и словарей в Python

Строки могут быть легко записаны и считаны из файла. Числа требуют немного больше усилий, так как метод file.read() возвращает только строки, которые должны быть переданы функции int() , которая принимает строку типа ‘123’ и возвращает ее числовое значение 123 . Когда вы хотите сохранить более сложные типы данных, такие как вложенные списки и словари, разбор и сериализация вручную усложняются.

Вместо того, чтобы пользователи постоянно писали и отлаживали код для сохранения сложных типов данных в файлы, Python позволяет использовать популярный формат обмена данными, называемый JSON (JavaScript Object Notation). Стандартный модуль, называемый json , может принимать иерархии данных Python и преобразовывать их в строковые представления. Этот процесс называется сериализацией. Восстановление данных из строкового представления называется десериализацией. Между сериализацией и десериализацией строка, представляющая объект, может быть сохранена в файле или отправлена по сетевому соединению на какой-либо удаленный компьютер.

Если у вас есть объект x , вы можете просмотреть его строковое представление JSON с помощью простой строки кода:

>>> import json >>> json.dumps([1, 'simple', 'list']) # '[1, "simple", "list"]' 

Другой метод этого модуля json.dump() просто сериализует объект в текстовый файл. Итак, если объект fp текстового файла открыт для записи, мы можем сделать следующее:

json.dump(x, fp) 

Чтобы снова декодировать объект, если fp это объект текстового файла, который был открыт для чтения:

x = json.load(fp) 

Этот простой метод сериализации может обрабатывать списки и словари, но сериализация произвольных экземпляров классов в JSON требует дополнительных усилий.

Дополнительно смотрите встроенный модуль pickle . В отличие от JSON , pickle — это протокол, который позволяет сериализовать произвольно сложные объекты Python.

Протокол pickle специфичен для Python и не может использоваться для связи с приложениями, написанными на других языках. Он также по умолчанию небезопасен! Десериализация данных pickle , поступающих из ненадежного источника, может выполнить произвольный код, если данные были созданы опытным злоумышленником.

  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Составление пути к файлу в Unix и Windows
  • Открытие/закрытие файла для чтения/записи
  • Типы обрабатываемых данных и файлов
  • Способы чтения открытого файла
  • Способы записи в открытый файл
  • Одновременное чтение из одного и запись в другой файл
  • Добавление данных в открытый файл
  • Управление указателем чтения/записи в файле
  • Создание собственного менеджера контекста
  • Сохранение словарей в формат JSON
  • Встроенные модули для работы с разными форматами

Как преобразовать словарь в текстовый файл в python?

Есть скачанный словарь dictionary.pkl. Нужно записать данные из словаря в txt файл. То есть каждая пара ключа и значения должны записаться в отдельной строке и разделяться через запятую.

Это часть словаря.
‘Sundar Ande’: 6400,
‘Mozhe Atkinson’: 2800,>

На выходе должно получиться:
Ellen Abel,11000
Sundar Ande,6400
Mozhe Atkinson,2800

  • Вопрос задан более трёх лет назад
  • 7899 просмотров

1 комментарий

Простой 1 комментарий

Запись словаря в файл

Author24 — интернет-сервис помощи студентам

Запись в файл словаря с несколькими значениями
Моя тема была неделю назад вот здесь: https://www.cyberforum.ru/python/thread1246408.html. А это.

Создание csv файла в программе, и запись в него словаря
Программа должна создавать директорию, папку и файл формата csv в папке и записывать в файл csv.

Запись словаря в файл xlsx
Коллеги всем доброго времени суток. Не могу записать словарь в файл формата xlsx. Имется.

Запись словаря столбиком. dict()
Приветик Как в python 3 можно записать в файл массив словаря столбиком ? new_d = dict().

Опишите запись ТРАНСПОРТ (с помощью словаря)
Опишите запись ТРАНСПОРТ (с помощью словаря) и поместите в нее следующую информацию: Ф.И.О.

Сохранить словарь в файл Python

Теперь я хочу сохранить этот словарь во временный файл, чтобы я мог перестроить словарь позже. (Я делаю внешнюю сортировку XD) Может ли кто-то помочь мне? Я знаю, что есть способ сохранить его в формате csv, но этот словарь является особенным. Thx много. python serialization file-io dictionary deserialization

Поделиться Источник 17 марта 2013 в 18:51

3 ответа

Модуль pickle довольно удобен для сериализации данных в Python. Вероятно, это также самый быстрый способ загрузить и перезагрузить структуру данных Python.

>>> import pickle >>> Test = <"apple":[3,<1:1,3:5,6:7>],"banana":[4,]> >>> pickle.dump(Test, open('test_file', 'w')) >>> pickle.load(open('test_file', 'r')) ], 'banana': [4, ]> 

Поделиться 17 марта 2013 в 18:57

  • pickle использует компактный формат, который может представлять практически любой объект Python. Однако, он специфичен для Python, поэтому только программы Python могут (легко) декодировать файл позже. Детали формата также могут отличаться от выпуска Python, поэтому лучше использовать pickle только в том случае, если вы будете перечитывать файл данных с той же или более новой версией Python, чем тот, который его создал. Pickle может работать с рекурсивными структурами данных.Наконец, pickle не подходит для чтения данных, предоставляемых другими, возможно, вредоносными программами, так как декодирование структуры данных может вызвать произвольный запуск кода в вашем приложении для восстановления сложных объектов.
  • json использует читаемый человеком текстовый формат, который может представлять только небольшой набор типов данных: числа, строки, None , булевы, списки и словари. Однако, это стандартный формат, который может быть прочитан эквивалентными библиотеками на многих других языках программирования, и он не отличается от одного выпуска Python к другому. JSON не поддерживает рекурсивные структуры данных, но обычно безопасно декодировать объект JSON из неизвестного источника, за исключением того, что, конечно, результирующая структура данных может использовать много памяти.

В обоих этих модулях функция dump может записать структуру данных в файл, а функция load может позже восстановить ее. Разница заключается в формате данных, записанных в файл.

Поделиться 17 марта 2013 в 19:00

Для меня, очевидно, лучший сериализатор — msgpack.

Те же методы, что и другие.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *