Читання, запис і аналіз JSON за допомогою Python
JSON — це легкий формат даних для обміну даними, який люди можуть легко читати та записувати, а також легко аналізувати та генерувати машинами. Це повний незалежний від мови текстовий формат. Для роботи з даними JSON Python має вбудований пакет під назвою JSON.
Приклад рядка JSON
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' Синтаксис JSON вважається підмножиною синтаксису JavaScript включаючи наступне:
- Пари ім'я/значення: Представляє дані, після імені стоїть двокрапка ( : ), а пари Ім’я/Значення відокремлюються комою ( , ).
- Фігурні дужки: Тримає предмети.
- Квадратні дужки: Зберігати масиви зі значеннями, розділеними комою ( , ).
Ключі/Ім’я мають бути рядками з подвійними лапками, а значення мають бути типами даних серед таких:
Приклад файлу JSON:
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] } Рядок Python аналізує JSON
У наведеному нижче коді ми збираємося перетворити JSON на об’єкт Python. Щоб розібрати рядок JSON Python, спочатку ми імпортуємо модуль JSON. У нас є рядок JSON, який зберігається в змінній «працівник» і ми перетворюємо цей рядок JSON на об’єкт Python за допомогою json.loads() метод модуля JSON у Python. Після цього ми друкуємо ім’я співробітника за допомогою ключа «name» .
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])> |
Вихід
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin Python читає файл JSON
Припустімо, що у нас є файл JSON, який виглядає так.
Тут ми використали функцію open() для читання файлу JSON. Потім файл аналізується за допомогою методу json.load(), який дає нам словник з назвою data.
Python3
import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()> |
Вихід:
Перетворення Python Dict на JSON
У наведеному нижче коді ми перетворюємо a Словник Python до об’єкта JSON за допомогою json.dumps() метод модуля JSON у Python. Спочатку ми імпортуємо модуль JSON, а потім створюємо невеликий словник із кількома парами ключ-значення, а потім передаємо його в метод json.dumps() із «indent=4», щоб перетворити цей словник Python на об’єкт JSON. Оскільки ми присвоїли значення відступу 4, у виведених даних є чотири пробіли перед кожними даними.
Python3
# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)> |
Вихід
{ 'id': '04', 'name': 'sunil', 'department': 'HR' } Наступні типи об’єктів Python можна перетворити на рядки JSON:
Об’єкти Python та їх еквівалентне перетворення в JSON:
| Python | Еквівалент JSON |
|---|---|
| дикт | об'єкт |
| список, кортеж | масив |
| вул | рядок |
| int, float | номер |
| правда | правда |
| помилковий | помилковий |
| Жодного | нуль |
Запис JSON у файл на Python
Ми можемо записати JSON у файл за допомогою функції json.dump() модуля JSON і обробки файлів у Python. У наведеній нижче програмі ми відкрили файл під назвою sample.json у режимі запису за допомогою 'В' . Файл буде створено, якщо він не існує. Json.dump() перетворить словник Python на рядок JSON, який буде збережено у файлі sample.json.
Python3
# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)> |
Вихід:
Python Pretty Print JSON
Коли ми перетворюємо рядок у JSON, дані мають менш читабельний формат. Щоб зробити його більш читабельним, ми можемо використати красивий друк, передавши додаткові аргументи у функцію json.dumps(), наприклад відступ і ключі_сортування як використовується в коді нижче.
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))> |
Вихід
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }