Читання, запис і аналіз JSON за допомогою Python

Читання, запис і аналіз 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, який виглядає так.

pyhton-append-json1

Тут ми використали функцію 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-read-json-output1

Перетворення 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-json-запис у файл

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' }