Python JSON: Четене, писане, анализиране на JSON (с примери)

В този урок ще се научите да анализирате, четете и пишете JSON в Python с помощта на примери. Също така ще се научите да конвертирате JSON в диктовка и да го разпечатате доста.

JSON ( J ava S cript O bject 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 File I / O.

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

Интересни статии...