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

Обновлено: 21.11.2024

Иногда вам может понадобиться записать словарь Python в файл. Этот процесс записи в файл различных структур данных Python, таких как списки, кортежи, словари и объекты, также известен как травление. В этой статье мы рассмотрим, как сохранить словарь в файл в python. В наших примерах мы рассмотрим наиболее распространенные варианты использования, такие как запись словаря в файлы типов csv, txt и json.

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

Вот различные способы записи словаря в файл в Python.

1. Сохранить словарь в CSV-файл

Мы будем использовать модуль csv для записи словаря в файл csv. В этом случае мы получим одну комбинацию ключ-значение в каждой строке CSV-файла, разделенную запятой. Вот пример.

В приведенном выше коде мы импортируем модуль csv и определяем словарь dict_sample для записи в файл data.csv. Затем мы используем оператор with и функцию open, чтобы открыть файл csv для записи. Мы используем цикл for для перебора пары ключ-значение словаря. На каждой итерации мы используем функцию записи для записи ключа и значения в файл data.csv. При их написании мы упоминаем спецификатор формата, так что ключ и значение разделяются запятой, а за значением следует символ новой строки.

При запуске указанного выше файла

вы получите следующий вывод

2. Сохранить словарь в JSON

В этом случае мы будем записывать словарь в файл JSON. Для этого мы импортируем модуль JSON, который предоставляет очень удобную функцию JSON.dumps для прямой записи словаря в формат JSON. Фактически, вы можете использовать эту функцию для преобразования любых данных Python в формат JSON, будь то список, кортежи, словари или просто строки.

Вот пример сохранения словаря Python в файл JSON.

В приведенном выше примере мы сначала импортируем модуль JSON. Затем мы определяем словарь для записи в файл JSON. Мы используем оператор with и команду open, чтобы открыть файл data.json для записи. Наконец, мы используем команду json.dumps для записи словаря в файл JSON.

Теперь, если вы просматриваете содержимое вашего json-файла, оно будет выглядеть следующим образом.

Вы заметите, что в приведенном выше выводе JSON все одинарные кавычки в словаре были преобразованы в двойные кавычки в JSON, подтверждая преобразование данных.

3. Сохранить словарь в текстовый файл

Следующий код запишет словарь Python как есть в текстовый файл.

В приведенном выше примере нам не нужно импортировать какой-либо модуль, поскольку python поддерживает операции с txt-файлами из коробки. Мы просто используем команды with и open, чтобы открыть файл для записи, и используем команду записи, чтобы записать словарь. Мы используем команду str для преобразования словаря в строку перед ее записью, поскольку вы не можете записывать словарь непосредственно в файлы.

Теперь, если вы просматриваете содержимое вашего текстового файла, оно будет выглядеть следующим образом.

Следующий код проанализирует ваш словарь Python и преобразует его в текстовый файл с разделителями табуляцией, который вы можете легко импортировать в другие приложения.

В приведенном выше коде определите словарь dict_sample, который будет записан в файл data.txt. Затем мы используем оператор with и функцию open, чтобы открыть текстовый файл для записи. Мы используем цикл for для перебора пары ключ-значение словаря. На каждой итерации мы используем функцию записи для записи ключа и значения в файл data.txt. При их написании мы упоминаем спецификатор формата, в котором ключ и значение разделяются пробелом/табуляцией, а за значением следует символ новой строки.

Вот выходной файл data.txt

Вот и все. В этой статье мы узнали, как сохранить словарь в файл. При этом мы рассмотрели 3 наиболее распространенных варианта использования словаря в файлах csv, txt и json. Написание словарей обычно является частью больших функций и модулей в приложениях. Вы можете настроить и использовать его в своем приложении в соответствии с вашими требованиями.

У меня есть словарь, и я пытаюсь записать его в файл.

Тогда у меня возникает ошибка

Поэтому я исправил эту ошибку, но появилась другая ошибка

Я понятия не имею, что делать, так как я еще новичок в python. Если кто-то знает, как решить проблему, пожалуйста, дайте ответ.

ПРИМЕЧАНИЕ: я использую Python 3, а не Python 2

10 ответов 10

Во-первых, вы открываете файл в режиме чтения и пытаетесь в него что-то записать. Проконсультируйтесь — режимы ввода-вывода Python

Во-вторых, в файл можно записать только строку. Если вы хотите написать объект словаря, вам нужно либо преобразовать его в строку, либо сериализовать.

В случае сериализации

Для Python 3.x импорт пакета pickle будет другим

Это сработало! Хотя он записывает только содержимое словаря. Можете ли вы заставить его написать: exDict =

@JanKukacka JSON – это стандартный формат данных. То, что выдаст str(exDict), не всегда будет действительным JSON. Одна из причин, по которой я думаю, заключается в том, что одинарные кавычки недействительны в файле JSON, хотя могут присутствовать, когда мы используем метод str.

Я делаю это так в Python 3:

Мне нравится это, потому что нет необходимости в импорте. Ответ выше data.write(str(dictionary)) не будет работать с правильным словарем, так как он просто напишет в вашем файле

Причина, по которой json лучше, чем просто запись str(mydict) в файл, заключается именно в том, что вам не нужно проверять содержимое, чтобы вернуть объект dict. eval — это защита безопасности, и ее не следует использовать, если есть лучшие варианты.

Ответы, содержащие только код, не рекомендуются, поскольку они не объясняют, как решают проблему. Пожалуйста, обновите свой ответ, чтобы объяснить, как это улучшает другие принятые и одобренные ответы, которые уже есть на этот вопрос. Ознакомьтесь с разделом Как написать хороший ответ.

Проблема с вашим первым блоком кода заключалась в том, что вы открывали файл как 'r', хотя хотели писать в него, используя 'w'

Когда я пробую маршрут json, я получаю ошибку, потому что у меня есть некоторые значения "NaN" в числах с плавающей запятой. Нет исправления без повреждения самих данных, если вы хотите написать JSON. Следовательно, этот ответ является предпочтительным, поскольку он может сохранить текстовый файл, чтобы точно отразить диктовку.

Если вам нужен словарь, который вы можете импортировать из файла по имени, а также добавляющий записи, которые хорошо отсортированы, и содержит строки, которые вы хотите сохранить, вы можете попробовать следующее:

Для любителей понимания списков, это запишет все пары ключ: значение в новых строках в dog.txt

Я знаю, что это старый вопрос, но я также решил поделиться решением, которое не использует json. Лично мне не очень нравится json, потому что он не позволяет легко добавлять данные. Если вашей отправной точкой является словарь, вы можете сначала преобразовать его в фрейм данных, а затем добавить в свой текстовый файл:

Надеюсь, это поможет.

Не очень полезно, потому что большинство словарей, которые я использую, недостаточно просты, чтобы стать полезными объектами DataFrame.

Как заставить Python сохранить словарь в файл. Это небольшие программы, которые позволяют создать словарь, а затем при запуске программы она создаст файл, содержащий данные исходного словаря.

С учетом словаря, такого как:

  • Файл значений, разделенных запятыми (.csv)
  • Файл JSON (.json)
  • Текстовый файл (.txt)
  • Файл рассола (.pkl)

сохранить словарь как CSV-файл

Модуль csv позволяет программам Python записывать и читать файлы CSV (значения, разделенные запятыми).

CSV – это распространенный формат, используемый для обмена данными между приложениями. Модуль предоставляет классы для представления записей и полей CSV и позволяет форматировать выходные данные как файлы CSV.

В этом формате каждое значение отделяется запятой, например, так:

Вы можете записать его в файл с модулем csv.

Файл словаря (csv) можно открыть в Google Docs или Excel

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

Сегодня файл JSON становится все более распространенным средством передачи данных в мире. JSON (нотация объектов JavaScript) — это облегченный формат обмена данными.

JSON легко читается и пишется людьми. Машины легко анализируют и генерируют.

JSON изначально был производным от языка сценариев JavaScript, но не ограничивается каким-либо одним языком программирования.

Если вы хотите сохранить словарь в файл json

сохранить словарь в текстовый файл (raw, .txt)

Приведенная ниже программа записывает словарь в текстовую строку. Он использует вызов str() для преобразования словаря в текстовую строку. Хотя это легко записать в виде текстовой строки, этот формат затрудняет чтение файла.

Вы можете сохранить словарь в текстовый файл, используя следующий код:

сохранить словарь в файл рассола (.pkl)

Модуль pickle можно использовать для сохранения словарей (или других объектов) в файл. Модуль может сериализовать и десериализовать объекты Python.

В Python pickle — это встроенный модуль, реализующий сериализацию объектов. Он является одновременно кроссплатформенным и кросс-языковым, что означает, что он может сохранять и загружать объекты между программами Python, работающими в разных операционных системах, а также между программами Python, работающими на разных платформах.

Модуль pickle полностью написан на Python и доступен в реализациях CPython, таких как Jython или IronPython. Чтобы разрешить загрузку pickles в другие модули Python, pickle поддерживает выполнение из командной строки.

В этом посте мы узнаем, как записать словарь в текстовый файл на Python, используя различные способы с примерами кода. Словарь Python – это структура данных, в которой данные хранятся в виде пар "ключ-значение".

1. Записать словарь в файл с помощью цикла For

Простой способ записи словаря в текстовый файл — использование цикла for.Сначала откройте файл в режиме записи с помощью метода File open().

Затем получите пару "ключ-значение" с помощью метода словаря items() из словаря. Переберите значения ключей словаря с помощью цикла for и запишите ключ и значение в текстовый файл с помощью метода write().

Пример программы

Вывод

Он создаст файл с именем (DictFile.txt) в текущем каталоге и запишет данные, как показано ниже.

Программа для записи и чтения словаря в файл

Вывод:

Файл будет создан в текущем каталоге со следующим форматом данных.

3. JSON.dump() для записи словаря в текстовый файл

JSON — это текстовый формат, не зависящий от языка. Его очень легко читать и писать, машина может легко его разобрать и сгенерировать. Мы используем метод dump() модуля JSON.

  • Импортируйте модуль JSON.
  • открыть файл в режиме записи, используя оператор with «with open("DictFile.txt","w") в качестве файла:"
  • Запишите словарь в файл, используя метод write(json.dumps(dict_students)).

Вывод

4. Сохранить словарь в текст с помощью file.write()

В этом примере мы сохраняем словарь в текстовый файл с помощью метода file.write().

Открытие файла в режиме записи с помощью оператора with. При использовании оператора with нет необходимости закрывать файл. Он автоматически обрабатывается компилятором.

Затем мы пишем весь словарь за один раз, используя файл. Метод записи(). И используя метод str() для преобразования словаря в строку для записи в файл.

Программа для сохранения словаря в текстовый файл

Вывод

5. Записать словарь в текстовый файл с помощью dict.keys()

В этом примере мы получаем все ключи словаря с помощью метода словаря keys() и перебираем все ключи с помощью цикла for.

Запись ключа и значений в виде строки с использованием этого формата «str(key)+» «+str(dict_studentsКак записать словарь в файл Python)» в файл. Мы можем изменить формат строки в соответствии с требованиями. Наконец, закрытие файла с помощью метода close().

Вывод:

Файл будет создан со следующими данными в текущем каталоге.

Вместо keys() мы можем использовать items() для записи словаря в файл. Давайте разберемся на примере

Вывод

Обзор

В этом посте мы узнали о 5 различных способах записи словаря в текстовый файл на Python с примерами кода.

Словарь — очень известный объект в Python. И это набор ключей и значений. Ключ словаря должен быть неизменяемым, и он может быть целым числом, числом с плавающей запятой, строкой, но ни список, ни сам словарь не могут быть ключом. Итак, иногда нам нужно сохранить объекты dict в файл. Итак, мы увидим различные способы сохранения объекта dict в файле.

Мы можем записать словарь в файл на Python разными способами, например:

  1. Файл значений, разделенных запятыми (.csv)
  2. Файл JSON (.json)
  3. Текстовый файл (.txt)
  4. Файл рассола (.pkl)

Мы собираемся объяснить все вышеперечисленные методы.

Способ 1. Сохранить словарь в формате CSV

Чтобы сохранить словарь в формате CSV (значения, разделенные запятыми), мы используем модуль CSV. Значения, разделенные запятыми, для сохранения python dict — самый распространенный и известный метод. Большинство программистов используют этот метод только для сохранения словаря в файл. Сохранить словарь в файле в формате CSV очень просто, так как нам нужно передать данные в виде строки.

Пример_1: dict_to_csv.py

dict_sample = { 'name' : 'LinuxHint', 'city' : 'CA', 'education' : 'Engineering'

с открытым ( 'data.csv' , 'w' ) как f:
для ключа в dict_sample. клавиши ( ) :
f. написать ("%s, %s \n" % (ключ, dict_sample [ключ]))

Строка 2: мы импортируем модуль Python в формате CSV.

Строка 4: мы создали образец данных dict. Мы попытаемся сохранить его в виде CSV-файла.

Строка 6: здесь мы используем оператор with для записи CSV-файла. Оператор with автоматически обрабатывает исключения во время чтения или записи файла. Открываем файл data.csv в режиме записи и присваиваем этот объект переменной f.

Строка 7. Мы запускаем цикл for, который извлекает ключ, а в следующей строке он записывает ключ и значение ключа в CSV-файл. Таким образом, этот цикл будет выполняться до тех пор, пока не появятся данные.

Вывод: data.csv

Итак, выше показан выходной файл после записи в data.csv.

Теперь мы понимаем, как сохранить словарь в файл в формате CSV. Давайте попробуем с другим примером, где мы хотим записать список объектов dict в файл CSV.

Пример_2: dict_to_csv_2.py

csvColumns = ['Город', 'Страна', 'Рейтинг']
dictDemo = [
{ 'Город': 'Нью-Йорк', 'Страна': 'США', 'Рейтинг' : 3 } ,
{ 'Город' : 'Сидней' , 'Страна' : 'Австралия' , 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : ' ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : 'Мумбаи' , 'Страна' : 'Индия' , 'Рейтинг' : 17 } ,
{ 'Город' : 'Пекин' , 'Страна' : 'Китай' , 'Рейтинг' : 7 } ,
]
csvFileName = "data.csv"
попробуйте :
с открытым ( csvFileName , 'w' ) как f:
writer = csv . DictWriter ( f , fieldnames = csvColumns )
писатель. writeheader()
для данных в dictDemo:
writer. writerow ( data )
кроме IOError :
print ("Got Error")

Строки с 3 по 12: мы импортируем CSV-модуль Python и создаем список объектов dict. Мы также создали список имен столбцов.

Строка 13: мы присвоили имя CSV-файла переменной.

Строка 15: мы используем оператор with, который присваивает объект возврата метода __enter__ переменной f.

Строки 16–19: после назначения возвращаемого объекта переменной f мы вызвали метод DictWriter модуля CSV и передали два параметра (имя файла (f) и имена столбцов). Затем мы вызываем другой метод writeheader(), который запишет первую строку файла CSV, которая обычно является именем полей. Затем мы запускаем цикл for для списка объектов dict и записываем один за другим в файл CSV с помощью метода writerow().

Способ 2. Сохраните словарь в текстовый файл в формате JSON (режим добавления)

Мы также можем сохранить объекты dict в формате JSON в файл. Приведенный ниже код объяснит то же самое. Этот код также объясняет, как мы можем добавить новый JSON в существующий список JSON.

Пример: dict_to_file_asJSON.py

dictDemo = [
{ 'Город' : 'Нью-Йорк' , 'Страна' : 'США' , 'Рейтинг' : 3 } ,
{ 'Город' : 'Сидней' , 'Страна ' : 'Австралия' , 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : «Мумбай», «Страна»: «Индия», «Рейтинг»: 17},
{ «Город»: «Пекин», «Страна»: «Китай», «Рейтинг»: 7},
]

Вывод: dict.json

[{ «Город»: «Нью-Йорк», «Страна»: «США», «Рейтинг»: 3},
{ «Город»: «Сидней», «Страна»: «Австралия», "Ранг" : 5 } ,
{ "Город" : "Дубай" , "Страна" : "ОАЭ" , "Ранг" : 10 } ,
{ "Город" : "Мумбай" , "Страна " : "Индия" , "Ранг" : 17 } ,
{ "Город" : "Пекин" , "Страна" : "Китай" , "Ранг" : 7 } ,
{ "Город" : «Пекин» , «Страна» : «Китай» }
]

Строки с 1 по 13: мы импортируем модуль JSON. Затем мы создаем список объектов dict для демонстрации. Затем мы присвоили имя файла JSON переменной имени файла.

Строки 15–17: мы используем оператор with, чтобы открыть файл JSON для записи, а затем используем метод json.dump для преобразования объектов dict в JSON и последующей записи в файл.

Строки с 20 по 22: эти строки очень важны, потому что что произойдет? Если мы попытаемся добавить новые объекты JSON в уже написанные файлы. Предыдущие данные будут потеряны из-за перезаписи. Затем мы можем использовать предыдущее имя списка dict, как мы это делали (dictDemo), а затем мы добавляем к нему новый объект. И, наконец, мы конвертируем весь файл в JSON и перезаписываем весь файл.

В выходных данных мы видим, что новый объект JSON добавляется в существующий список JSON.

Способ 3. Сохранение объектов словаря в файл в формате txt

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

Пример: dict_to_txt.py

dictDemo = [
{ 'Город' : 'Нью-Йорк' , 'Страна' : 'США' , 'Рейтинг' : 3 } ,
{ 'Город' : 'Сидней' , 'Страна ' : 'Австралия' , 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : «Мумбай», «Страна»: «Индия», «Рейтинг»: 17},
{ «Город»: «Пекин», «Страна»: «Китай», «Рейтинг»: 7},
]

Вывод: dict.txt

[{ 'Город': 'Нью-Йорк', 'Страна': 'США', 'Рейтинг': 3},
{ 'Город': 'Сидней', 'Страна': 'Австралия', 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : 'Мумбай' , 'Страна ' : 'Индия' , 'Рейтинг' : 17 } ,
{ 'Город' : 'Пекин' , 'Страна' : 'Китай' , 'Рейтинг' : 7 } ]

Строки с 1 по 11: мы создали список объектов словаря и присвоили имя файла «dict.txt» переменной имени файла.

Строки с 14 по 15: здесь используется оператор with, который автоматически обрабатывает исключение. И мы записываем список объектов dict в виде строки в файл.

Пример: dict_to_txt_2.py

Мы увидели, как сохранить объекты dict в файл в формате .txt. Но в приведенном выше коде есть одна проблема с добавлением нового объекта. Итак, мы меняем метод добавления с «w» на «a», что может решить нашу проблему, как показано ниже в коде.

""":cvar
Этот код сохранит объекты dict в файле с
режимом добавления.
"""
dictDemo = [
{ «Город»: «Нью-Йорк», «Страна»: «США», «Рейтинг»: 3 },
{ «Город»: «Сидней», «Страна»: «Австралия», «Рейтинг»: 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : 'Мумбай' , 'Страна' : 'Индия' , 'Рейтинг' : 17 } ,
{ 'Город' : 'Пекин' , 'Страна' : 'Китай' , 'Рейтинг' : 7 } ,
]

Строки с 7 по 15: мы создали список объектов словаря и присвоили имя файла «dict_to_file_appendMode.txt» переменной имени файла.

Строки с 18 по 19: мы меняем режим = ‘a’, и это решит нашу проблему. Вывод ниже показывает, что мы добавили два объекта dict в один и тот же файл без перезаписи предыдущих данных.

Вывод: dict_to_file_appendMode.txt

[{ 'Город': 'Нью-Йорк', 'Страна': 'США', 'Рейтинг': 3},
{ 'Город': 'Сидней', 'Страна': 'Австралия', 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : 'Мумбай' , 'Страна ' : 'Индия' , 'Рейтинг' : 17 } ,
{ 'Город' : 'Пекин' , 'Страна' : 'Китай' , 'Рейтинг' : 7 } ]

[{ 'Город': 'Нью-Йорк', 'Страна': 'США', 'Рейтинг': 3},
{ 'Город': 'Сидней', 'Страна': 'Австралия', 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : 'Мумбай' , 'Страна ' : 'Индия' , 'Рейтинг' : 17 } ,
{ 'Город' : 'Пекин' , 'Страна' : 'Китай' , 'Рейтинг' : 7 } ]

Способ 4. Сохраните объект dict в файл, используя метод pickle.

Мы также можем сохранить объект dict в файл с помощью модуля pickle в Python. Модуль pickle поддерживает множество объектов для сериализации в Python, а также поддерживает объекты dict.

dictDemo = [
{ 'Город' : 'Нью-Йорк' , 'Страна' : 'США' , 'Рейтинг' : 3 } ,
{ 'Город' : 'Сидней' , 'Страна ' : 'Австралия' , 'Рейтинг' : 5 } ,
{ 'Город' : 'Дубай' , 'Страна' : 'ОАЭ' , 'Рейтинг' : 10 } ,
{ 'Город' : «Мумбай», «Страна»: «Индия», «Рейтинг»: 17},
{ «Город»: «Пекин», «Страна»: «Китай», «Рейтинг»: 7},
]

с открытым ( имя файла , 'ab' ) как f:
pickle . дамп ( dictDemo , f )

Строки с 3 по 13. Мы импортируем модуль pickle и создаем список объектов dict. Мы также создаем имя файла, в котором мы будем сохранять наши объекты dict.

Строки с 15 по 16: здесь мы используем оператор with и открываем файл в режиме добавления и в двоичном формате. Затем мы выгружаем объекты dict в файл.

Заключение

Итак, мы рассмотрели различные способы сохранения объекта словаря в файл. Это зависит от пользователя, как он хочет сохранить объект в файл. Наиболее распространенными способами сохранения объекта dict в файл являются JSON и CSV. Форматы JSON и CSV очень известны с точки зрения программирования и просты в использовании в Python. Мы также видели режим добавления файлов для сохранения.

Читайте также: