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

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

  • автор:

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

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

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

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

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

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

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

Работа с JSON-файлами в Python

Бывает такое, что при открытии файлов в них оказываются данные, очень похожие на словари и списки. Или наоборот, вы хотите записать в файл словарь, но не знаете как это сделать. На помощь приходит стандартный модуль json .

JSON — текстовый формат данных, очень похожий на словари и списки. Изначально он пришёл из JavaScript, но сейчас используется повсеместно. Хоть данные и похожи на словари и списки, в файл записан обычный текст. Чтобы превратить его в словари и списки нужна библиотека json .

Прочитать JSON

Пусть есть файл capitals.json с очень похожим на словарь содержимым:

 "Россия": "Москва", "Беларусь": "Минск", "Казахстан": "Нур-Султан" > 

Простое открытие этого файла выглядит так:

with open("capitals.json", "r") as my_file: capitals = my_file.read() 

Проблема в том, что в capitals будет лежать не словарь, а строка. Если попытаться достать значение по ключу, то случится ошибка:

print(capitals["Россия"]) Traceback (most recent call last): File "", line 1, in module> TypeError: string indices must be integers 

Чтобы превратить строку в словарь понадобится модуль json . Его не нужно дополнительно устанавливать, он входит в стандартный набор библиотек:

import json with open("capitals.json", "r") as my_file: capitals_json = my_file.read() capitals = json.loads(capitals_json) 

Функция json.loads взяла строку capitals_json и на основе её данных сделала словарь. Теперь в capitals лежит не строка, а словарь:

print(capitals["Россия"]) # Москва 

«Девман» — авторская методика обучения программированию на Python. Готовим к работе крутых программистов.

Запись в файл

Если же вам нужно сохранить в файл словарь или список, то это тоже можно легко сделать, по аналогии. Сначала из словаря сделаем строку, затем сохраним её в файл:

import json capitals =  "Россия": "Москва", "Беларусь": "Минск", "Казахстан": "Нур-Султан" > capitals_json = json.dumps(capitals) with open("capitals.json", "w") as my_file: my_file.write(capitals_json) 

Читайте дальше

Попробуйте бесплатные уроки по 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

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

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

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

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

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