У цьому посібнику ви навчитеся аналізувати, читати та писати JSON на Python за допомогою прикладів. Крім того, ви навчитеся перетворювати JSON на дикт і досить друкувати його.
JSON ( J AVA S cript O ▪ Таблиця N otation) є популярним форматом даних , що використовуються для представлення структурованих даних. Зазвичай передача та отримання даних між сервером та веб-додатком у форматі JSON.
У Python JSON існує у вигляді рядка. Наприклад:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Також часто зберігається об’єкт JSON у файлі.
Імпорт json модуля
Для роботи з JSON (рядок або файл, що містить об'єкт JSON), ви можете використовувати json
модуль Python . Вам потрібно імпортувати модуль, перш ніж ви зможете його використовувати.
import json
Проаналізуйте JSON на Python
json
Модуль дозволяє легко розібрати JSON рядки і файли , що містять об'єкт JSON.
Приклад 1: Python JSON для диктування
Ви можете проаналізувати рядок JSON за допомогою json.loads()
методу. Метод повертає словник.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Тут person - це рядок JSON, а person_dict - це словник.
Приклад 2: Python читає файл JSON
Ви можете використовувати json.load()
метод для читання файлу, що містить об'єкт JSON.
Припустимо, у вас є файл із іменем, person.json
який містить об’єкт JSON.
("name": "Bob", "languages": ("English", "Fench") )
Ось як можна проаналізувати цей файл:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Тут ми використали open()
функцію для читання файлу json. Потім файл аналізується за допомогою json.load()
методу, який дає нам словник з іменем даних.
Якщо ви не знаєте, як читати та писати файли на Python, рекомендуємо перевірити введення / виведення файлів Python.
Перетворення Python у рядок JSON
Ви можете перетворити словник у рядок JSON за допомогою json.dumps()
методу.
Приклад 3: Перетворення dict в JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Ось таблиця, що показує об’єкти Python та їх еквівалентне перетворення в JSON.
Python | Еквівалент JSON |
---|---|
dict | об'єкт |
list , tuple | масив |
str | рядок |
int , float ,int | номер |
True | правда |
False | помилковий |
None | нуль |
Запис JSON у файл
Щоб записати JSON у файл на Python, ми можемо використовувати json.dump()
метод.
Приклад 4: Запис JSON у файл
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
У вищезазначеній програмі ми відкрили файл, названий person.txt
у режимі письма за допомогою 'w'
. Якщо файл ще не існує, він буде створений. Потім json.dump()
перетворюється person_dict
на рядок JSON, який буде збережено у person.txt
файлі.
Після запуску програми person.txt
файл буде створений. У файлі є наступний текст.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python симпатичний принт JSON
Для аналізу та налагодження даних JSON нам може знадобитися роздрукувати їх у більш читаному форматі. Це можна зробити, передавши додаткові параметри indent
і sort_keys
до json.dumps()
та json.dump()
методу.
Приклад 5: Python досить друкує JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Коли ви запускаєте програму, результат буде:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
У наведеній вище програмі ми використовували 4
пробіли для відступу. І ключі сортуються за зростанням.
До речі, типовим значенням відступу є None
. І за замовчуванням значення sort_keys - False
.
Рекомендовані читання:
- Python JSON до CSV і навпаки
- Python XML до JSON і навпаки
- Python simplejson