добавление записи в json с помощью python
Понимаю, что вопрос простой, но не пойму как дописать в json. Есть json:
import json name = input("Имя: ") phone = input("Телефон: ") def create_json(): json_data = < "name": name, "phone": phone, >with open('db.json', 'w') as file: file.write(json.dumps(json_data, indent=2, ensure_ascii=False)) # create_json() def add_to_json(): json_data = < "name": name, "phone": phone, >data = json.load(open("db.json")) data.append(json_data) with open("db.json", "w") as file: json.dump(data, file, indent=2, ensure_ascii=False) add_to_json()
Вылезает ошибка:
AttributeError: 'dict' object has no attribute 'append'
Нужно добавить запись, что бы json имел такой вид:
Отслеживать
задан 1 мар 2021 в 6:23
53 1 1 золотой знак 4 4 серебряных знака 9 9 бронзовых знаков
что бы json имел такой вид: — это некорректный json. Чтобы записать несколько словарей в json, их нужно положить в список.
1 мар 2021 в 6:34
спасибо, теперь все получилось
Чтение и запись файлов JSON в Python с помощью Pandas
Библиотека Pandas предоставляет классы и функционал для чтения, обработки и визуализации данных, хранящихся в различных форматах. В этой статье мы научимся считывать и записывать данные JSON, используя Python и Pandas.
Создание файла JSON
Сначала мы создадим файл с использованием ядра Python, а затем считаем и запишем в него данные с помощью Pandas.
Создание данных JSON через вложенные словари
В Python для создания данных JSON можно использовать вложенные словари. Каждый элемент во внешнем словаре соответствует столбцу в файле JSON.
Ключ каждого элемента – заголовок столбца, а значение – другой словарь, состоящий из строк столбца. Реализуем словарь, который можно использовать для создания файла JSON со списком вымышленных пациентов:
patients = < "Name":, "Gender":, "Nationality":, "Age" : >
В приведенном выше коде первый элемент соответствует столбцу Name. Значение элемента состоит из словаря, в котором элементы являются строками. Ключи внутренних элементов словаря соответствуют порядковым номерам строк, где значения представляют значения строк.

В столбце Name первая запись сохраняется в нулевом индексе, где значением записи является John, и так далее.
Создание данных JSON через списки словарей
Еще один способ создания данных в формате JSON – использование списка словарей. Каждый элемент в списке состоит из словаря, а каждый словарь представляет строку. Этот подход удобнее для чтения, по сравнению с использованием вложенных словарей.
Создадим список для файла JSON, в котором хранится информация о разных автомобилях:
cars = [ , , , , ]
Каждому элементу словаря соответствует строка в файле JSON. Например, первый элемент в первом словаре хранит в столбце Name значение Honda. Значение в первой строке столбца Price будет 10000 и так далее.
Запись данных в файл JSON через Python
С помощью вложенных словарей и списков словарей можно сохранить данные в файле JSON. Для этого мы будем использовать модуль json и метод dump():
import json with open('E:/datasets/patients.json', 'w') as f: json.dump(patients, f) with open('E:/datasets/cars.json', 'w') as f: json.dump(cars, f)
Теперь у нас есть два файла JSON — patients.json и cars.json.
Чтение файлов JSON с помощью Pandas
Чтобы прочитать файл JSON с помощью Pandas, вызовем метод read_json() и передадим ему путь к файлу, который нужно прочитать. Метод возвращает DataFrame, который хранит данные в виде столбцов и строк.
Но сначала нужно установить библиотеку Pandas:
$ pip install pandas
Чтение JSON из локальных файлов
Приведенный ниже скрипт считывает файл patients.json из локальной системной директории и сохраняет результат во фрейме данных patients_df. Затем заголовок фрейма выводится с помощью метода head():
import pandas as pd patients_df = pd.read_json('E:/datasets/patients.json') patients_df.head()
Запуск этого кода должен дать следующий результат:

Следующий скрипт считает файл cars.json из локальной системы и затем вызовет метод head()cars_df для вывода заголовка:
cars_df = pd.read_json('E:/datasets/cars.json') cars_df.head()
Результат запуска этого кода:

Чтение JSON из удаленных файлов
С помощью метода read_json() также можно считывать файлы JSON, расположенные на удаленных серверах. Для этого нужно передать в вызов функции путь удаленного файла JSON.
Давайте прочитаем и выведем заголовок из Iris Dataset:
import pandas as pd iris_data = pd.read_json("https://raw.githubusercontent.com/domoritz/maps/master/data/iris.json") iris_data.head()
Результат запуска этого кода:

Запись файлов данных JSON с помощью Pandas
Чтобы преобразовать фрейм данных Pandas в файл JSON, используем функцию to_json() и передадим ей в качестве параметра путь к файлу, который будет создан.
Создадим файл JSON из набора данных tips, который включен в библиотеку Seaborn. Но сначала установим ее:
$ pip install seaborn
Затем импортируем ее и загрузим подсказки в набор данных:
import seaborn as sns dataset = sns.load_dataset('tips') dataset.head()
Ниже показано как выглядит набор данных:

Функция Seaborn load_dataset() возвращает DataFrame, поэтому загрузка набора данных позволяет вызвать функцию to_json() для ее преобразования.
После получения доступа к набору данных, сохраним его содержимое в файле JSON. Мы создали для этого каталог datasets:
dataset.to_json('E:/datasets/tips.json')
Перейдя в каталог E:/datasets, вы должны увидеть там файл tips.json, JSON-данные которого соответствует записям во фрейме данных Pandas tips:
< "total_bill":< "0":16.99, "1":10.34, "2":21.01, "3":23.68, "4":24.59, "5":25.29, . >"tip": < "0":1.01, "1":1.66, "2":3.5, "3":3.31, "4":3.61, "5":4.71, . >"sex": < "0":"Female", "1":"Male", "2":"Male", "3":"Male", "4":"Female", "5":"Male", . >"smoker": < "0":"No", "1":"No", "2":"No", "3":"No", "4":"No", "5":"No", . >.
Заключение
В этой статье мы рассмотрели, как считывать и записывать файлы JSON, используя популярную библиотеку Pandas Python.
Запишите данные JSON в файл на Python
В этом посте мы обсудим, как читать и записывать данные JSON из файла в Python.
Стандартный способ чтения и записи данных JSON из файла — использование json-модуль.
Чтобы прочитать файл JSON, вы можете просто вызвать метод json.loads() функция.
import json
import pprint
with open ( ‘data.json’ , ‘r’ ) as f :
data = f . read ( )
json_data = json . loads ( data )
print ( json_data )
Чтобы записать JSON в файл, вызовите json.dumps() функция.
import json
json_obj = json . loads ( ‘<"one": 1, "two": 2, "three": 3>‘ )"one":>
with open ( ‘data.json’ , ‘w’ ) as f :
json . dump ( json_obj , f )
The json.dumps() Функция по умолчанию выбирает наиболее компактное представление json. Для красивой печати json вы можете указать аргумент отступа.
1. Положительный уровень отступа отступает столько пробелов на уровень, т. е. JSON будет красиво напечатан с этим уровнем отступа.
import json
json_obj = json . loads ( json_str )
with open ( ‘data.json’ , ‘w’ ) as f :
json . dump ( json_obj , f , indent = 2 )
2. Если отступ представляет собой строку (например, ‘\t’ ), эта строка будет отступать на каждом уровне.
import json
json_obj = json . loads ( json_str )
with open ( ‘data.json’ , ‘w’ ) as f :
json . dump ( json_obj , f , indent = ‘\t’ )
3. Нулевой или отрицательный уровень отступа или пустая строка будут вставлять только новые строки.
import json
json_obj = json . loads ( json_str )
with open ( ‘data.json’ , ‘w’ ) as f :
json . dump ( json_obj , f , indent = 0 )
Вот и все, что касается записи данных JSON в файл на Python.
Оценить этот пост
Средний рейтинг 4.95 /5. Подсчет голосов: 22
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Работа с 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
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.