В този урок ще се научите да анализирате, четете и пишете 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