W tym samouczku nauczysz się analizować, czytać i pisać JSON w Pythonie za pomocą przykładów. Nauczysz się również konwertować JSON do dyktowania i ładnie go drukować.
JSON ( J Ava S CRIPT O bject N otation) jest popularnym formatem danych wykorzystywane do przedstawiania danych strukturalnych. Przesyłanie i odbieranie danych między serwerem a aplikacją internetową w formacie JSON jest powszechne.
W Pythonie JSON istnieje jako ciąg. Na przykład:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Często zdarza się również przechowywać obiekt JSON w pliku.
Importuj moduł JSON
Aby pracować z JSON (ciągiem lub plikiem zawierającym obiekt JSON), możesz użyć json
modułu Pythona . Musisz zaimportować moduł, zanim będziesz mógł go używać.
import json
Przeanalizuj JSON w Pythonie
json
Moduł ułatwia analizowania ciągów JSON i pliki zawierające obiekt JSON.
Przykład 1: Python JSON do dyktowania
Możesz przeanalizować ciąg JSON za pomocą json.loads()
metody. Metoda zwraca słownik.
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'))
Tutaj osoba to ciąg JSON, a person_dict to słownik.
Przykład 2: Python odczytuje plik JSON
Możesz użyć json.load()
metody, aby odczytać plik zawierający obiekt JSON.
Załóżmy, że masz plik o nazwie, person.json
który zawiera obiekt JSON.
("name": "Bob", "languages": ("English", "Fench") )
Oto jak możesz przeanalizować ten plik:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Tutaj użyliśmy open()
funkcji do odczytania pliku json. Następnie plik jest analizowany przy użyciu json.load()
metody, która daje nam słownik o nazwie data.
Jeśli nie wiesz, jak czytać i zapisywać pliki w Pythonie, zalecamy sprawdzenie Python File I / O.
Python Konwertuj na ciąg JSON
Możesz przekonwertować słownik na ciąg JSON za pomocą json.dumps()
metody.
Przykład 3: Konwertuj dict na 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)
Oto tabela przedstawiająca obiekty Pythona i ich równoważną konwersję do formatu JSON.
Pyton | Odpowiednik JSON |
---|---|
dict | obiekt |
list , tuple | szyk |
str | strunowy |
int , float ,int | numer |
True | prawdziwe |
False | fałszywy |
None | zero |
Zapisywanie JSON do pliku
Aby zapisać JSON do pliku w Pythonie, możemy użyć json.dump()
metody method.
Przykład 4: Zapisywanie JSON do pliku
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)
W powyższym programie otworzyliśmy plik o nazwie person.txt
w trybie pisania za pomocą 'w'
. Jeśli plik jeszcze nie istnieje, zostanie utworzony. Następnie json.dump()
przekształca person_dict
się w ciąg JSON, który zostanie zapisany w person.txt
pliku.
Po uruchomieniu programu person.txt
plik zostanie utworzony. Plik zawiera następujący tekst.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python ładnie drukuje JSON
Aby przeanalizować i debugować dane JSON, może być konieczne wydrukowanie ich w bardziej czytelnym formacie. Można to zrobić przekazując dodatkowe parametry indent
i sort_keys
do json.dumps()
i json.dump()
metoda.
Przykład 5: Python ładnie drukuje 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))
Po uruchomieniu programu wynik będzie następujący:
(„języki”: „angielski”, „nazwa”: „Robert”, „liczby”: (2, 1,6, null))
W powyższym programie użyliśmy 4
spacji do wcięć. Klucze są posortowane w kolejności rosnącej.
Nawiasem mówiąc, domyślna wartość indent to None
. Domyślna wartość sort_keys to False
.
Zalecane lektury:
- Python JSON do CSV i odwrotnie
- Python XML do JSON i odwrotnie
- Python simplejson