Автор оригинала: Pankaj Kumar.
Как прочитать файл JSON в Python
В этой статье мы посмотрим, как прочитать файл JSON в Python.
Часто вы можете легко читать и анализировать данные JSON из соответствующих файлов JSON. Давайте узнаем некоторые из способов, которыми мы можем легко читать и извлечь эти данные!
Способ 1: Использование json.load () для чтения файла json в python
JSON Module Это встроенный модуль в Python3, который предоставляет нам возможности обработки файлов JSON, используя json.load ()
Отказ
Мы можем построить объект Python после того, как мы напрямую прочитаем файл JSON в Python, используя этот метод.
Предположить образец .json
это файл JSON со следующим содержимым:
{ "name": "AskPython", "type": "website", "language": "Python" }
Мы можем загрузить объекты JSON в объект Python, используя следующую программу. Теперь мы можем легко получить доступ к нему, используя {ключ: значение} Пары сопоставления словаря!
import json with open("sample.json", "r") as rf: decoded_data = json.load(rf) print(decoded_data) # Check is the json object was loaded correctly try: print(decoded_data["name"]) except KeyError: print("Oops! JSON Data not loaded correctly using json.loads()")
Выход
{'name': 'AskPython', 'type': 'website', 'language': 'Python'} AskPython
Действительно, мы смогли правильно загружать наши объекты JSON из нашего файла!
Способ 2: Используйте IJSON для больших файлов JSON
Если ваш файл JSON достаточно велик, так что он дорого принести весь контент в память, лучший подход будет преобразовать содержимое файла в Потоки Использование IJSON
Отказ
Поток представляет собой коллекцию объектов (так же, как объекты JSON), которые будут загружены на память Только по требованию Отказ Это означает, что наш погрузчик данных загружает данные «Lazy», то есть только при необходимости.
Это ослабляет требование памяти при работе с большими файлами. Содержание потока хранится во временном буфере, что позволяет справиться с гигабайтами файлов JSON!
Чтобы установить IJSON
Используйте PIP!
pip install ijson
Теперь, чтобы поэкспериментировать, мы будем использовать несколько маленький файл JSON, так как он будет много времени для загрузки гигабайт данных!
Я буду использовать файл covid thumeries json, на это связь. Загрузите файл и переименуйте это как covid_timeseries.json
Отказ Размер файла должен составлять около 2 МБ.
import ijson for prefix, type_of_object, value in ijson.parse(open("covid_timeseries.json")): print(prefix, type_of_object, value)
Образец вывода (несколько строк)
Yemen.item.date string 2020-4-13 Yemen.item map_key confirmed Yemen.item.confirmed number 1 Yemen.item map_key deaths Yemen.item.deaths number 0 Yemen.item map_key recovered Yemen.item.recovered number 0 Yemen.item end_map None Yemen.item start_map None Yemen.item map_key date Yemen.item.date string 2020-4-14 Yemen.item map_key confirmed Yemen.item.confirmed number 1 Yemen.item map_key deaths Yemen.item.deaths number 0 Yemen.item map_key recovered Yemen.item.recovered number 0 Yemen.item end_map None Yemen end_array None
Это будет распечатать содержимое огромного файла JSON, но вы можете сохранить счетчик счетчиков, чтобы избежать печати всего файла.
В то время как IJSON
Может быть медленным, кажется, работает в пределах меньшей памяти. Вы можете попробовать этот модуль, если вы работаете с большими файлами.
Заключение
В этой статье мы узнали, как мы могли бы прочитать файл JSON в Python. Мы также кратко посмотрели на обработку большего объема данных, используя IJSON
Отказ
использованная литература
- S t a c k o v e r f l o w в о п р о с | | П р и о б р а щ е н и и с б о л ь ш и м и ф а й л а м и J S O N