Рубрики
Без рубрики

Как прочитать файл JSON с Python

https://youtu.be/p7hlgdcnn4g Вы столкнулись с файлом JSON и в потере, чтобы знать, как извлечь желаемую информацию, или вы не знаете о JSON, но хотелось бы? Сегодня мы представим формат JSON и используете Python для доступа к файлу JSON. Мы извлеким данные, которые нам нужны, и мы будем использовать Python Json … Как прочитать файл JSON с Python Подробнее »

Автор оригинала: David Yeoman.

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

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

Что такое файл json?

💡 JSON Стенды для объектов Java Script Object, который является человеческим текстовым форматом для обмена данными. Несмотря на слово Java на имя, JSON является языковым независимым, и большинство основных языков программирования имеют возможность генерировать и разбирать данные с форматом JSON.

Как пользователь Python, вы будете знакомы со списком и видами данных словаря, а основание JSON использует две такие структуры.

  1. Коллекция пар/ценности пар; а также
  2. Упорядоченный набор значений.

Вот некоторые JSON отформатированные данные под названием veher_vehicles.json И вы можете увидеть сходство с нашими типами данных Python.

{
    "cars" : [
        {
            "make" : "Audi",
            "model" : "A4",
            "year" : 2010
            },
        {
            "make" : "Peugeot",
            "model" : "308",
            "year" : 2019
            },
        {
            "make" : "Toyota",
            "model" : "Landcruiser",
            "year" : 2015
            }
        ],
    "trucks" : [
        {
            "make" : "Citroen",
            "model" : "HY Van",
            "year" : 1979
            },
        {
            "make" : "Bedford",
            "model" : "TJ",
            "year" : 1960
            }
        ]
}

Вы можете увидеть Словарь Синтаксис стиля с использованием фигурных скобок и Ключ: значение Пары, и есть квадратный кронштейн, который выглядит как Список (или массив).

Так как вы читаете файл json?

У Python есть модуль, который кодирует и декодирует файлы формата JSON. Если вы хотите прочитать об этом в Python Standard Библиотека , вы можете найти это здесь Отказ

В своем основном использовании модуль JSON имеет два ключевых метода чтения:

  1. json.load () – принимает файл json и преобразует закодированные данные в объект Python
  2. json.loads () – Занимает json отформатированную строку и преобразует его в объект Python

Давайте напишем какой-нибудь код для импорта JSON и преобразовать файл в формат Python.

Использование метода json.load ()

import json

with open('used_vehicles.json') as file:
    stock = json.load(file) 

С этим кодом мы теперь открыли, читайте и преобразовали vehehicle.json Файл в словарь Python, и мы передали его на «запас». Помните, что если вы используете имя пути в Открыть () Команда, используйте сырую строку, разместив букву R Перед открытием речевой марки – вот пример – Открыть (R'C://pythontutorial/used_vehicles.json ')

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

import json

with open('used_vehicles.json') as file:
    stock = json.load(file) 

print(stock)

# Result

{'cars': [{'make': 'Audi', 'model': 'A4', 'year': 2010}, {'make': 'Peugeot', 'model': '308', 'year': 2019}, {'make': 'Toyota', 'model': 'Landcruiser', 'year': 2015}], 'trucks': [{'make': 'Citroen', 'model': 'HY Van', 'year': 1979}, {'make': 'Bedford', 'model': 'TJ', 'year': 1960}]}

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

import json

with open('used_vehicles.json') as file:
    stock = json.load(file) 

for cars in stock['cars']:
    print(cars)

print('\n')

for trucks in stock['trucks']:
    print(trucks)

# Result

{'make': 'Audi', 'model': 'A4', 'year': 2010}
{'make': 'Peugeot', 'model': '308', 'year': 2019}
{'make': 'Toyota', 'model': 'Landcruiser', 'year': 2015}


{'make': 'Citroen', 'model': 'HY Van', 'year': 1979}
{'make': 'Bedford', 'model': 'TJ', 'year': 1960}

Затем, наконец, во что-то приближается к нормальному текстовому формату.

import json

with open('used_vehicles.json') as file:
    stock = json.load(file) 

for cars in stock['cars']:
    print(cars['make'], cars['model'], '\tManufactured', cars['year'])

print('\n')

for trucks in stock['trucks']:
    print(trucks['make'], trucks['model'], '\t\tManufactured', trucks['year'])

# Result

Audi A4 		Manufactured 2010
Peugeot 308 		Manufactured 2019
Toyota Landcruiser 	Manufactured 2015


Citroen HY Van 	Manufactured 1979
Bedford TJ 		Manufactured 1960

Обратите внимание на использование \ T Персонаж, чтобы вставить вкладки, которые сделают напечатанные данные выглядят немного более приборку.

Помните, что код, который мы просто написали подержанные json.load () Как мы читали из файла. Если бы у нас была json Formatted String, мы сможем использовать json.loads () – Итак, давайте сделаем это тоже.

Использование метода json.loads ()

С помощью следующего примера мы показываем строку JSON, а затем использовать json.loads () Команда для преобразования данных в объект Python. В этом примере я также импортировал симпатичную печать, чтобы позволить мне показать окончательный выход в формате, который несколько читается, используя PPRINT () команда, а не стандарт Печать () формат.

import json
from pprint import pprint

vehicles_json = """{
    "cars" : [
        {
            "make" : "Audi",
            "model" : "A4",
            "year" : 2010
            },
        {
            "make" : "Peugeot",
            "model" : "308",
            "year" : 2019
            },
        {
            "make" : "Toyota",
            "model" : "Landcruiser",
            "year" : 2015
            }
        ],
    "trucks" : [
        {
            "make" : "Citroen",
            "model" : "HY Van",
            "year" : 1979
            },
        {
            "make" : "Bedford",
            "model" : "TJ",
            "year" : 1960
            }
        ]
}
"""

vehicles_dict = json.loads(vehicles_json)

pprint(vehicles_dict)

# Result

{'cars': [{'make': 'Audi', 'model': 'A4', 'year': 2010},
          {'make': 'Peugeot', 'model': '308', 'year': 2019},
          {'make': 'Toyota', 'model': 'Landcruiser', 'year': 2015}],
 'trucks': [{'make': 'Citroen', 'model': 'HY Van', 'year': 1979},
            {'make': 'Bedford', 'model': 'TJ', 'year': 1960}]}

Process finished with exit code 0

Итак, чтобы водить урок домой – помните, что единственное число нагрузка () Способ читает из файла и преобразует его на объект Python. Множественное число грузы () Способ считывается из строки и аналогично возвращает объект Python.

Бонус: Как мы пишем данные в файл json?

Мы видели в чтении примеров использования нагрузка () против грузы () Настолько неудивительно, что у нас есть аналогичный синтаксис в сценарии записи, просто обращаясь к процессу. Два метода записи:

  1. json.dump () – принимает объект Python и сохраняет его в файле JSON
  2. json.dumps () – принимает объект Python и записывает его прямо на формат строки JSON

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

Использование метода json.dump ()

Сначала используйте json.dump () Способ, который пишет в файл – обратите внимание, что открыл файл, используя команду «с ‘», которая мешает нам добавить дополнительную Закрыть () Команда в конце блока кода, создавая код Tidier.

Нам также необходимо добавить команду «W», чтобы «написать» в файл, и, наконец, мы используем json.dump () синтаксис. Примечание Я включил дополнительный «Отступ» Команда, чтобы помочь сделать новый файл более читабельным при открытии, отступ на четыре пробела.

import json

employees_dict = {'employees' : [
        {'name' : 'Adam Smith', 'employee_num' : 187456},
        {'name' : 'Sharon McFarlane', 'employee_num' : 847563},
        {'name' : 'Karen Angus', 'employee_num' : 678654}
        ],
    'contractors' : [
        {'name' : 'John Franklin', 'contract_num' : 7658},
        {'name' : 'Kirsty Appleby', 'contract_num' : 3456},
        {'name' : 'Jim Armstrong', 'contract_num' : 5678},
        ]
    }


with open('C:\PythonTutorials\employee1.json', 'w') as file:
    json.dump(employees_dict, file, indent=4)

Если мы тогда проверяем C: \ pythontutorians Папка мы находим следующий файл, который я открыл в блокноте.

Использование метода json.dumps ()

json.dumps () Команда пишет в формате строки JSON, поэтому я код и передаю его в переменной, которую мы тогда будем печатать, чтобы увидеть, как это выглядит.

import json

employees_dict = {'employees' : [
        {'name' : 'Adam Smith', 'employee_num' : 187456},
        {'name' : 'Sharon McFarlane', 'employee_num' : 847563},
        {'name' : 'Karen Angus', 'employee_num' : 678654}
        ],
    'contractors' : [
        {'name' : 'John Franklin', 'contract_num' : 7658},
        {'name' : 'Kirsty Appleby', 'contract_num' : 3456},
        {'name' : 'Jim Armstrong', 'contract_num' : 5678},
        ]
    }

employees_json = json.dumps(employees_dict, indent=4)

print(employees_json)


# Results

{
    "employees": [
        {
            "name": "Adam Smith",
            "employee_num": 187456
        },
        {
            "name": "Sharon McFarlane",
            "employee_num": 847563
        },
        {
            "name": "Karen Angus",
            "employee_num": 678654
        }
    ],
    "contractors": [
        {
            "name": "John Franklin",
            "contract_num": 7658
        },
        {
            "name": "Kirsty Appleby",
            "contract_num": 3456
        },
        {
            "name": "Jim Armstrong",
            "contract_num": 5678
        }
    ]
}

Process finished with exit code 0

Как вы можете увидеть при сравнении двух кодов, json.dumps () требует меньше строк кода. Вы просто передаете свой словарь к методу, который выводит строку JSON к нашему сотрудники_json Переменная. Затем вы можете распечатать это или использовать его в другом месте в вашей программе.

Другой вариант для чтения файлов JSON в Python

Стандартный метод Python по созданию HTTP-запросов вызывается, не удивительно, запросы. Используя Получить () Метод, вы можете загрузить веб-страницу и передавать его на объект ответа. В пределах Запросы Модуль заключается в умении преобразовать этот объект ответа, если он находится в формате JSON, в словарь Python Python так же, как мы ранее у нас есть JSON модуль.

Установить Запросы Библиотека вам нужно будет запустить следующую команду;

$ pip install requests

Затем мы импортируем запросы в наш код до построения Получить () запрос. Вот код;

import requests
from pprint import pprint

response = requests.get("https://api.github.com/")

convert = response.json()

pprint(convert)

# Results

{'authorizations_url': 'https://api.github.com/authorizations',
 'code_search_url': 'https://api.github.com/search/code?q={query}{&page,per_page,sort,order}',
 'commit_search_url': 'https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}',
 'current_user_authorizations_html_url': 'https://github.com/settings/connections/applications{/client_id}',
 'current_user_repositories_url': 'https://api.github.com/user/repos{?type,page,per_page,sort}',
 'current_user_url': 'https://api.github.com/user',
 . . .
 'repository_url': 'https://api.github.com/repos/{owner}/{repo}',
 'starred_gists_url': 'https://api.github.com/gists/starred',
 'starred_url': 'https://api.github.com/user/starred{/owner}{/repo}',
 'user_organizations_url': 'https://api.github.com/user/orgs',
 'user_repositories_url': 'https://api.github.com/users/{user}/repos{?type,page,per_page,sort}',
 'user_search_url': 'https://api.github.com/search/users?q={query}{&page,per_page,sort,order}',
 'user_url': 'https://api.github.com/users/{user}'}

Process finished with exit code 0

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

Чтобы подвести итог

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

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

Мы узнали о модуле Python под названием JSON Что позволяет нам прочитать файлы JSON и записывать их в объекты Python, используя методы нагрузки () и нагрузки (), и аналогично позволяет нам принимать типы данных Python и записывать их в формат JSON, используя модули Dump () и dumps () Отказ

Наконец, мы представили модуль запросов, который представляет собой пакет Python, используемый для обработки HTTP-запросов, и который имеет JSON Способ преобразования восстановленных данных JSON на объект Python.

Я доверяю эту статью, помогаю в том, как прочитать файл json. Спасибо за чтение.