pl
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
Türkçe
한국인
Italiano
Indonesia JSON to skrót od JavaScript Object Notation. Jest nie tylko lekki, ale także łatwy do odczytania i napisania dla ludzi. Podobnie, maszyny uważają go za łatwy do analizowania i generowania. Parsowanie jest kluczowe podczas pracy z treściami z API, plików konfiguracyjnych lub innych źródeł przechowywanych informacji dla każdego programisty Pythona. Ten artykuł przeprowadzi Cię przez podstawy parsowania JSON przy użyciu modułu Pythona, w tym jak używać json.dump python do zapisywania treści.
Struktury JSON zawierają szczegóły w parach klucz-wartość. Oto podstawowy przykład obiektu:
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"]
}
Ten przykład parsowania json w Pythonie zawiera typowe: ciąg znaków, liczbę, wartość logiczną i tablicę. Zapoznanie się z tą strukturą znacznie ułatwia pracę w Pythonie.
Implementacja Pythona umożliwia łatwe parsowanie ciągu json przy użyciu wbudowanego modułu Pythona. Moduł ten zawiera metody takie jak json.loads() do odczytu z ciągu znaków i json.load() do odczytu z pliku. I odwrotnie, json.dumps() i json.dump Pythona służą do zapisywania informacji odpowiednio w łańcuchu znaków i pliku.
Przyjrzyjmy się, jak odczytywać dane JSON, które omówimy w następnej kolejności.
Jeśli chcesz odczytać json w Pythonie, użyj json.loads(), aby przeanalizować ciąg znaków i przekonwertować go na obiekt Pythona:
import json
json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)
print(data)
Wyjście:
Aby wyodrębnić informacje z pliku, użyj tej metody: json.load() i otwórz plik json w Pythonie:
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Wyjście:
Przed zapisaniem często trzeba odczytać lub załadować istniejące informacje - i właśnie w tym miejscu przydatna staje się metoda python load json file. Po prawidłowym załadowaniu informacji można nimi manipulować i zapisywać je w różnych formatach.
Aby zapisać informacje w postaci ciągu znaków, użyj metody json.dumps Pythona:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
json_string = json.dumps(data)
print(json_string)
Wyjście:
Aby zapisać szczegóły tego pliku, użyj metody json.dump Pythona:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
with open('data.json', 'w') as file:
json.dump(data, file)
Zagnieżdżone obiekty są powszechne podczas pracy z bardziej złożonymi strukturami informacji, które mogą z łatwością obsługiwać te zagnieżdżone struktury.
import json
nested_json_string = '''
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"],
"address": {
"street": "123 Main St",
"city": "Wonderland"
}
}
'''
data = json.loads(nested_json_string)
print(data['address']['city'])
Wyjście:
Język nie może automatycznie przekształcić wszystkich niestandardowych obiektów w JSON. W takich przypadkach konieczne będzie utworzenie niestandardowego kodera.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
class StudentEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Student):
return obj.__dict__
return super().default(obj)
student = Student("Alice", 30, False)
json_string = json.dumps(student, cls=StudentEncoder)
print(json_string)
Wyjście:
Aby deserializować niestandardowe obiekty, należy zaimplementować niestandardowy dekoder, który wie, jak je obsługiwać.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
def student_decoder(dct):
return Student(dct['name'], dct['age'], dct['is_student'])
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
student = json.loads(json_string, object_hook=student_decoder)
print(student.name)
Wyjście:
Praca z danymi szczegółowymi może prowadzić do kilku typowych błędów, szczególnie podczas analizowania, generowania lub uzyskiwania dostępu do treści strukturalnych. Korzystanie z niezawodnego parsera python json może pomóc zidentyfikować i naprawić te problemy bardziej efektywnie. Oto niektóre z najczęstszych z nich:
Częstym błędem podczas analizowania pliku json jest napotkanie nieprawidłowego formatu. Wymaga on podwójnych cudzysłowów wokół kluczy i wartości łańcuchowych oraz prawidłowego zagnieżdżenia nawiasów i nawiasów klamrowych.
import json
invalid_json_string = "{'name': 'Alice', 'age': 30, 'is_student': False}"
try:
data = json.loads(invalid_json_string)
except json.JSONDecodeError as e:
print(f"Invalid JSON format: {e}")
Wyjście:
Czasami zawartość nie zawiera wszystkich oczekiwanych kluczy. Użycie metody get() pozwala bezpiecznie obsłużyć brakujące klucze, zwracając wartość domyślną zamiast zgłaszać błąd.
import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)
Użyj modułu pdb, aby ustawić punkty przerwania i debugować kod parsowania.
import json
import pdb
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)
Web scraping zazwyczaj polega na pobieraniu treści z usług, które zwracają uzyskane informacje. Poniżej znajduje się przykład wykorzystujący bibliotekę żądań wraz z punktem końcowym https://httpbin.org/anything.
Zanim zaczniemy, sprawdź, czy zainstalowałeś pakiet żądań:
pip install requests
Podczas pracy z treścią strukturalną można użyć biblioteki requests, aby ułatwić sobie pracę. Wystarczy wysłać żądanie GET i adres URL za pomocą requests.get(url). Następnie można przeanalizować odpowiedź za pomocą response.json(). Stamtąd można łatwo uzyskać dostęp do określonych informacji, takich jak nagłówki, agent użytkownika, pochodzenie lub adres URL żądania i wydrukować je w razie potrzeby.
Kod zawiera silną obsługę błędów; przechwytuje json.JSONDecodeError, gdy wystąpi błąd dekodowania, oraz KeyError, gdy określony klucz jest nieobecny, co w konsekwencji zabezpiecza program przed awariami "braku danych". Taka solidność kodu pozwala mu zatem doskonale radzić sobie z rzeczywistymi zadaniami skrobania stron internetowych.
import requests
import json
url = 'https://httpbin.org/anything'
response = requests.get(url)
try:
data = response.json()
# Wyodrębnianie określonych danych z odpowiedzi JSON
headers = data['headers']
user_agent = headers.get('User-Agent', 'N/A')
origin = data.get('origin', 'N/A')
url = data.get('url', 'N/A')
print(f"User Agent: {user_agent}")
print(f"Origin: {origin}")
print(f"URL: {url}")
except json.JSONDecodeError:
print("Error decoding JSON response")
except KeyError as e:
print(f"Key error: {e} not found in the JSON response")
Każdy programista musi wiedzieć, jak analizować plik json w Pythonie. Dzięki modułowi i najlepszemu sposobowi jego wykonania, które zostały przedstawione w tym podręczniku, będziesz w stanie odczytywać, zapisywać i debugować wystarczająco szybko. Oznacza to regularne testowanie kodu i korzystanie z odpowiednich narzędzi i najnowszych funkcji w celu uzyskania lepszej wydajności. Ten przewodnik koncentruje się na analizowaniu danych json w Pythonie, aby pomóc ci skutecznie opanować te zadania.
Podczas skrobania stron internetowych parsowanie staje się niezbędne, ponieważ treści z internetowych interfejsów API często są dostarczane w tym formacie. Umiejętność przetwarzania i manipulowania nimi pozwala na skuteczne wydobywanie cennych informacji z różnych źródeł.
Parsowanie jest kluczową umiejętnością dla każdego programisty pracującego z interfejsami API sieci Web, plikami konfiguracyjnymi lub źródłami zewnętrznymi. Obsługa informacji - niezależnie od tego, czy chodzi o odczyt z ciągu znaków, pliku, zapisywanie ustrukturyzowanych danych wyjściowych, czy też radzenie sobie z zagnieżdżonymi i niestandardowymi obiektami - jest uproszczona dzięki wbudowanemu modułowi w Pythonie. Programiści mogą odblokować metody json.load(), json.loads(), json.dump(), json.dumps() Pythona i dowiedzieć się, jak radzić sobie z typowymi problemami, implementować niestandardowe kodery lub dekodery oraz tworzyć dostosowane aplikacje do interakcji informacji, które są solidne i niezawodne. Biorąc pod uwagę, że format ten jest standardem sieciowym do wymiany informacji, umiejętności te są cenne w skrobaniu, manipulowaniu treścią i integrowaniu wielu usług za pośrednictwem interfejsów API. Użycie prostego kodu Pythona do odczytu pliku json sprawia, że analizowanie pliku json w Pythonie jest dostępne dla każdego projektu, podczas gdy json.dump Python pozwala na efektywne zapisywanie materiału z powrotem.
Komentarze: 0