JSON Python Basit Bir Kılavuz Ayrıştırma

  • Owen Little
  • 0
  • 2263
  • 375
reklâm

JSON (kısaltması “JavaScript Nesnesi Gösterimi”), çeşitli uygulamalar arasında veri değişimini kolaylaştıran, metin tabanlı bir formattır. Örneğin, C ++ ile yazılmış bir uygulama Windows Visual C ++ Çalıştırma Hataları Nasıl Giderilir Windows Visual C ++ Çalıştırma Hataları Nasıl Çözülür Visual C ++ Hataları, Windows kullanıcıları için yaygın bir sorundur. Ama onları nasıl onaracağını biliyor musun? Windows'ta çalışan JSON verilerini python ile yazılmış ve Linux'ta çalışan bir uygulama ile kolayca değiştirebilirsiniz. Sadeliği ve esnekliği, özellikle önceki XML tabanlı formatları tercih etmek için son yıllarda yaygın kullanıma yol açmıştır..

Neredeyse her dil ve ortamdan JSON'u ayrıştırmak ve oluşturmak için kullanılabilecek kütüphaneler ve araçlar mevcuttur. Bu makale, python kullanarak JSON'un işlenmesinden kaynaklanan yöntem ve konulara odaklanmaktadır..

Bazı JSON Örnekleri

Karşılaşacağınız en yaygın JSON varlığı nesne: aşağıda gösterilen formatta bir anahtar-değer eşlemeleri seti.

person.json:

"firstName": "Alice", "soyadı": "Salon", "yaş": 35 

Bir nesne dizisini nasıl temsil edebileceğinizi burada bulabilirsiniz. Bu gösterimde, dizinin her maddesi bir nesnedir. Aşağıdaki beyzbol oyuncularının maaşlarından bir örnek.

salaries.json:

["yıl": 1985, "teamId": "ATL", "leagueId": "NL", "playerId": "barkele01", "maaş": 870000, "yıl": 1985, "teamId": "ATL", "leagueId": "NL", "playerId": "bedrost01", "maaş": 550000] 

Elbette bir dizi skalayı da temsil edebilirsiniz. Bu gibi görünüyor:

["merhaba", "dünya", 35] 

JSON'u Python'da Ayrıştırma

Python JSON Kullanarak İletişim Kurmak için Python ve JavaScript Nasıl Edinilir JSON Kullanarak İletişim Kurmak için Python ve JavaScript Nasıl Alınmalı Bugün JSON'u JavaScript'ten Python'a veri göndermek için JSON nasıl kullanacağınızı göstereceğim. İhtiyacınız olan tüm kod ile birlikte bir web sunucusunun nasıl kurulacağını anlatacağım. sağlar json Hem JSON ayrıştırmak hem de python nesnelerinden ve listelerden JSON üretmek için kullanılabilen modül.

Aşağıdaki kod parçacığında bir JSON dosyasının nasıl açılacağı ve verilerin bir değişkene nasıl yükleneceği gösterilmektedir..

json'u open ('sample.json', 'r') fp: obj = json.load (fp) ile içe aktarın 

JSON verilerini içeren bir dizginiz olduğunda, aşağıdakileri bir python nesnesine (veya listeye) dönüştürebilirsiniz:

obj = json.loads ("" "" firstName ":" Alice "," soyadı ":" Salon "," yaş ": 35" "") 

Bir JSON URL’si ayrıştırmak için, kullanarak bir URL nesnesi oluşturabilirsiniz. urllib2 ve kullan json.load () eskisi gibi.

urllib2'yi içe aktar, json url = urllib2.urlopen ('http://site.com/sample.json') obj = json.load (url) 

Hataları işleme

JSON hata yaptığında, bir ValueError. Gerekirse halledebilir ve düzeltici eylemde bulunabilirsiniz.

try: obj = json.loads ("" "" firstName ":" Alice "," soyadı: "Hall", "yaş": 35 "" "), ValueError hariç:" JSON yüklenirken "yazdır" hatası "

Komut Satırından JSON Ayrıştırma

Bazen, python komut satırını kullanarak JSON'u ayrıştırmak, belki de hataları kontrol etmek veya güzel girintili çıktılar elde etmek faydalı olabilir..

cat glossary.json # "glossary": "GlossDiv": "GlossList": "GlossEntry": "GlossDef": "GlossSeeAlso": ["GML", "XML"], "para": "DocBook gibi biçimlendirme dilleri oluşturmak için kullanılan bir meta işaretleme dili.", "GlossSee": "işaretleme", "Kısaltma": "SGML", "GlossTerm": "Standart Genelleştirilmiş İşaretleme Dili", "Abbrev": "ISO 8879: 1986", "SortAs": "SGML", "ID": "SGML", "başlık": "S", "başlık": "örnek sözlük" 

Yukarıdaki JSON dosyasından girintili çıktıyı elde etmek için aşağıdakileri yapabilirsiniz:

python -mjson.tool glossary.json #, "glossary": "GlossDiv": "GlossList": "GlossEntry": "Abbrev": "ISO 8879: 1986", "Kısaltma": "SGML", "GlossDef": "GlossSeeAlso": ["GML", "XML"], "para": "DocBook gibi biçimlendirme dilleri oluşturmak için kullanılan bir meta biçimlendirme dili." , "GlossSee": "işaretleme", "GlossTerm": "Standart Genel İşaretleme Dili", "Kimlik": "SGML", "SortAs": "SGML", "başlık": "S", "başlık ":" örnek sözlük " 

Ve işte JSON nesnesini python'a nasıl yükleyebileceğiniz ve sadece ihtiyacınız olanı çıkarabileceğiniz.

python -c 'import json; fp = açık ("glossary.json", "r"); obj = json.load (fp); fp.close (); obj ["sözlük"] ["başlık"] '# yazdırır örnek sözlük

Verilere Erişim

JSON verilerini bir python değişkenine yükledikten sonra, verilere herhangi bir python diktisinde (veya olabileceği gibi) olduğu gibi erişebilirsiniz. Örneğin, yukarıdaki JSON verilerine aşağıdaki gibi erişilebilir:

firstName = obj ["firstName"] lastName = obj ["Salon"] yaş = obj ["yaş"] 

Veri tipleri

Veri türleri verilerden otomatik olarak belirlenir. Bunu not et yaş bir tamsayı olarak ayrıştırıldı.

baskı türü (obj ["ilkAdı"]), yazın (obj ["soyadı"]), yazın (obj ["yaş"]) # yazdırır    

Aşağıdaki dönüşüm tablosu JSON'dan python'a dönüştürmek için kullanılır.

Özel Sınıf Kullanarak JSON Ayrıştırma

Varsayılan olarak, bir JSON nesnesi bir python'a ayrıştırılır dict. Bazen JSON verilerinden otomatik olarak kendi sınıfınızın bir nesnesini yaratma ihtiyacı duyabilirsiniz. Belirterek bunu yapabilirsiniz. object_hook dönüşüm işleyen işlevi. Aşağıdaki örnekte nasıl.

İşte bir temsil eden özel bir sınıf Kişi.

sınıf Kişi: def __init __ (öz, ad, soyadı, yaş): self.firstName = ilkAdı self.lastName = soyadı self.age = yaş def __str __ (öz): return '"firstName" = "0", "lastName" = "1", "yaş" = 2 '. formatı (self.firstName, self.lastName, self.age) 

Bu sınıfın bir örneği, gerekli argümanları aşağıdaki gibi ileterek yaratılır:

kişi = Kişi ("Kristal", "Newell", 27) 

JSON ayrıştırırken örnekler oluşturmak için bu sınıfı kullanmak için, object_hook işlev aşağıdaki gibi tanımlanır: İşlev bir python alır. dict ve doğru sınıfın bir nesnesini döndürür.

def obj_creator (d): İade Kişi (d ['firstName'], d ['lastName'], d ['yaş']) 

Şimdi bunu kullanabilirsiniz object_hook JSON ayrıştırıcısını çağırırken işlev.

fp: obj = json.load (fp, object_hook = obj_creator) olarak open ('sample.json', 'r') ile yazdırmak obj # print "firstName" = "Alice", "lastName" = "Hall", " yaş "= 35 

JSON Kullanımına Örnekler

JSON bugünlerde oldukça popülerdir. Birçok web sitesi ve SaaS (Hizmet Olarak Yazılım) uygulamaları, doğrudan uygulamalar tarafından tüketilebilen JSON çıkışını sunar. Kamuya açık olanlardan bazıları:

  • StackOverflow / Stack Exchange. İşte JSON biçiminde soru listesini döndüren bir URL.
  • GitHub, https://developer.github.com/v3/ adresinde bir JSON API sunuyor..
  • Ve işte Flickr API'sı: https://developer.yahoo.com/flickr/.

Nasıl kullanılacağına dair daha fazla örnek arıyorsanız, Python kullanarak bir sosyal medya botu oluşturmak için bu kılavuzu inceleyin..

JSON'u hizmet almak veya tüketmek için mi kullanıyorsunuz? Ve teknoloji yığında python kullanıyor musunuz? Aşağıdaki yorumlarda açıklayın.




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.