tr
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski JSON, JavaScript Nesne Notasyonu anlamına gelir. Sadece hafif olmakla kalmaz, aynı zamanda insanlar için okunması ve yazılması da kolaydır. Aynı şekilde makineler için de ayrıştırılması ve üretilmesi kolaydır. Herhangi bir Python geliştiricisi için API'lerden, yapılandırma dosyalarından veya diğer depolanmış bilgi kaynaklarından gelen içerikle uğraşırken ayrıştırma çok önemlidir. Bu makale, içeriği kaydetmek için json.dump python'un nasıl kullanılacağı da dahil olmak üzere Python modülünü kullanarak JSON'u ayrıştırmanın temelleri hakkında size yol gösterir.
JSON, ayrıntıları anahtar-değer çiftleri halinde yapılandırır. İşte temel bir nesne örneği:
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"]
}
Bu python json ayrıştırma örneği ortak: bir string, sayı, boolean ve bir dizi içerir. Bu yapıya aşina olmak Python'da çalışmayı çok daha kolay hale getirir.
Python'daki yerleşik modülü kullanarak python parse json dizesini kolayca uygulayarak. Bu modül, bir dizeden okumak için json.loads() ve bir dosyadan okumak için json.load() gibi yöntemler içerir. Tersine, json.dumps() ve json.dump Python, sırasıyla bir dizeye ve bir dosyaya bilgi yazmak için kullanılır.
Daha sonra ele alacağımız JSON verilerinin nasıl okunacağına bakalım.
Python'da json okumak istiyorsanız, bir dizeyi ayrıştırmak ve bir Python nesnesine dönüştürmek için json.loads() kullanın:
import json
json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)
print(data)
Çıktı:
Bir dosyadan bilgi almak için şu yöntemi kullanın: json.load() ve python'da bir json dosyası açın:
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Çıktı:
Yazmadan önce, genellikle mevcut bilgileri okumanız veya yüklemeniz gerekir - ve işte bu noktada python load json file yöntemi kullanışlı hale gelir. Bilgi düzgün bir şekilde yüklendikten sonra, onu çeşitli biçimlerde değiştirebilir ve geri yazabilirsiniz.
Bilgileri bir dizeye yazmak için json.dumps Python yöntemini kullanın:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
json_string = json.dumps(data)
print(json_string)
Çıktı:
Bu dosyanın ayrıntılarını yazmak için json.dump Python yöntemini kullanın:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
with open('data.json', 'w') as file:
json.dump(data, file)
Daha karmaşık bilgi yapılarıyla çalışırken iç içe geçmiş nesneler yaygındır ve bu iç içe geçmiş yapıları kolayca işleyebilir.
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'])
Çıktı:
Dil, tüm özel nesneleri otomatik olarak JSON'a dönüştüremez. Bu gibi durumlarda, özel bir kodlayıcı oluşturmanız gerekir.
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)
Çıktı:
Özel nesnelere serileştirme yapmak için, bunları nasıl işleyeceğini bilen özel bir kod çözücü uygulamanız gerekir.
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)
Çıktı:
Veri ayrıntılarıyla çalışmak, özellikle yapılandırılmış içeriği ayrıştırırken, oluştururken veya bunlara erişirken çeşitli yaygın hatalara yol açabilir. Güvenilir bir python json ayrıştırıcı kullanmak, bu sorunları daha verimli bir şekilde tanımlamaya ve düzeltmeye yardımcı olabilir. İşte en yaygın olanlardan bazıları:
Json dosyası ayrıştırılırken sık karşılaşılan bir hata, geçersiz bir formatla karşılaşılmasıdır. Anahtarların ve dize değerlerinin etrafında çift tırnak işareti ve parantez ve ayraçların uygun şekilde yerleştirilmesini gerektirir.
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}")
Çıktı:
Bazen içerik, beklediğiniz tüm anahtarları içermez. get() yöntemini kullanmak, hata vermek yerine varsayılan bir değer döndürerek eksik anahtarları güvenli bir şekilde ele almanızı sağlar.
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)
Kesme noktaları ayarlamak ve ayrıştırma kodunuzda hata ayıklamak için pdb modülünü kullanın.
import json
import pdb
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)
Web kazıma genellikle elde edilen bilgileri döndüren hizmetlerden içerik almayı içerir. Aşağıda, https://httpbin.org/anything uç noktasının yanı sıra istek kütüphanesini kullanan bir örnek yer almaktadır.
Başlamadan önce, requests paketini yüklediğinizi kontrol edin:
pip install requests
Yapılandırılmış içerikle çalışırken, işleri kolaylaştırmak için requests kütüphanesini kullanabilirsiniz. Basitçe requests.get(url) aracılığıyla bir GET isteği ve URL gönderin. Ardından, response.json() ile yanıtı ayrıştırabilirsiniz. Buradan, üstbilgiler, kullanıcı aracısı, kaynak veya istek URL'si gibi belirli bilgi parçalarına erişmek ve gerektiğinde bunları yazdırmak kolaydır.
Kod güçlü hata işleme özelliğine sahiptir; kod çözme hatası oluştuğunda json.JSONDecodeError ve belirli bir anahtar olmadığında KeyError hatalarını yakalayarak programın 'veri yok' çökmelerine karşı korunmasını sağlar. Bu tür bir kod sağlamlığı, bu nedenle gerçek web kazıma görevlerini mükemmel bir şekilde ele almasını sağlar.
import requests
import json
url = 'https://httpbin.org/anything'
response = requests.get(url)
try:
data = response.json()
# JSON yanıtından belirli verileri ayıklama
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")
Her geliştirici python'da bir json dosyasını nasıl ayrıştıracağını bilmelidir. Bu kılavuzda vurgulanan modül ve bunu yapmanın en iyi yolu ile, yeterince hızlı okuyabilir, yazabilir ve hata ayıklayabilirsiniz. Bu, kodunuzu düzenli olarak test etmek ve daha iyi performans için doğru araçları ve en son özellikleri kullanmak anlamına gelir. Bu kılavuz, bu görevlerde verimli bir şekilde ustalaşmanıza yardımcı olmak için python'da json verilerini ayrıştırmaya odaklanmaktadır.
Web kazıma yaparken, web API'lerinden gelen içerik genellikle bu formatta geldiğinden ayrıştırma çok önemli hale gelir. Bunu işleme ve manipüle etme konusunda yetenekli olmak, çeşitli kaynaklardan değerli bilgileri verimli bir şekilde çıkarmanıza olanak tanır.
Ayrıştırma, web API'leri, yapılandırma dosyaları veya harici kaynaklarla çalışan tüm geliştiriciler için önemli bir beceridir. Bir dizeden, dosyadan okuma, yapılandırılmış çıktı yazma veya iç içe geçmiş ve özel nesnelerle uğraşma gibi bilgilerin işlenmesi, Python'daki yerleşik modül aracılığıyla basitleştirilmiştir. Geliştiriciler json.load(), json.loads(), json.dump(), json.dumps() Python yöntemlerinin kilidini açabilir ve yaygın sorunlarla nasıl başa çıkacaklarını, özel kodlayıcıları veya kod çözücüleri nasıl uygulayacaklarını ve sağlam ve güvenilir bilgi etkileşimleri için özel uygulamalar yapmayı öğrenebilirler. Bu formatın bilgi alışverişi için bir web standardı olduğu göz önüne alındığında, bu beceriler kazıma, içeriği manipüle etme ve API'ler aracılığıyla birden fazla hizmeti entegre etme konusunda değerlidir. Json dosyasını okumak için basit python kodunu kullanmak, python'da bir json dosyasını ayrıştırmayı herhangi bir proje için erişilebilir hale getirirken, json.dump python malzemeyi verimli bir şekilde geri kaydetmeye izin verir.
Yorumlar: 0