Python – #9 – JSON cz. 1

Wprowadzenie.

We wpisie przedstawiłem w jaki sposób dokonać konwersji z typów z Pythona do formatu JSON. JSON jest to plik tekstowy, który ma zdefiniowaną strukturę typów danych niezależną od konkretnego języka programowania. Służy przede wszystkim do wymiany danych między programami / aplikacjami, które wykorzystują różne języki programowania. 

Zakres artykułu.

  • Konwersja z Dict do JSON
  • Konwersja z Dict do pliku jako JSON

Konwersja z Dict do JSON

Pierwszym krokiem, jaki należy wykonać, abyśmy mogli pracować w Pythonie z danymi w formacie JSON, musimy zaimportować pakiet json.

import json

Stwórzmy sobie teraz prosty słownik z kilkoma danymi.

myDict = { 
    "name": "Dominik",  
    "age": 28, 
    "married": True,
    "city": "Warsaw", 
    "favorite_colors": ["green", "blue"]
    }

W celu przekonwertowania typu dictionary do formatu JSON musimy skorzystać z metody dumps(). Metoda ta jako pierwszy argument przyjmuje typ danych. W naszym przypadku będzie to słownik. Metoda dumps zwraca nam obiekt typu str. W celu zobaczenia, jak wygląda przekonerwtowany format, zwróconą wartość wyświetlmy za pomocą printa.

myJson = json.dumps(myDict)

print(myJson)

Cały kod programu wygląda następująco.

import json

myDict = { 
    "name": "Dominik",  
    "age": 28, 
    "married": True,
    "city": "Warsaw", 
    "favorite_colors": ["green", "blue"]
    }

myJson = json.dumps(myDict)

print(myJson)

Wynik działa prezentuje się następująco.

Aby wyświetlenie wyniku prezentowało się w czytelniejszy dla nas sposób, metoda dumps() przyjmuje jeszcze między innymi argument o nazwie indent, który definiuje wielkość wcięcia formatowania stringu dla kolejnych typów danych. Dodatkowo możemy jeszcze skorzystać z argumentu sort_keys, który jeśli ustawimy na True to kolejne typy danych, zostaną posortowane alfabetycznie. 

myJsonPretty = json.dumps(myDict, indent = 4, sort_keys=True)

print(myJsonPretty)

Cały kod w tym przypadku wygląda następująco.

import json

myDict = { 
    "name": "Dominik",  
    "age": 28, 
    "married": True,
    "city": "Warsaw", 
    "favorite_colors": ["green", "blue"]
    }

myJsonPretty = json.dumps(myDict, indent = 4, sort_keys=True)

print(myJsonPretty)

A efekt prezentuje się tak.

 

Konwersja z Dict do pliku jako JSON

Jeżeli chcielibyśmy przesłać nasze dane w formacie JSON, najprostszym sposobem jest umieszczenie stringu w pliku tekstowym. Python w tym celu udostępnia nam bardzo podobną metodę jak poprzednio i jest nią dump(). Metoda ta poza argumentem z typem danych przyjmuje jeszcze argument w postaci obiektu do pliku do którego ma zostać zapisany przekonwertowany string. 

with open('myTxtFile.json', 'w') as jsonFile:
    json.dump(myDict, jsonFile)

Cały kod prezentuje się następująco.

 

import json

myDict = { 
    "name": "Dominik",  
    "age": 28, 
    "married": True,
    "city": "Warsaw", 
    "favorite_colors": ["green", "blue"]
    }

with open('myTxtFile.json', 'w') as jsonFile:
    json.dump(myDict, jsonFile)

A plik prezentuje się w taki sposób.

 

Tak jak w poprzednim przypadku plik JSON możemy sformatować przy pomocy argumentu indent.

with open('myPrettyTxtFile.json', 'w') as jsonFile:
    json.dump(myDict, jsonFile, indent = 4)

Kod w tym przypadku wygląda następująco.

 

import json

myDict = { 
    "name": "Dominik",  
    "age": 28, 
    "married": True,
    "city": "Warsaw", 
    "favorite_colors": ["green", "blue"]
    }

with open('myPrettyTxtFile.json', 'w') as jsonFile:
    json.dump(myDict, jsonFile, indent = 4)

A plik tekstowy prezentuje się w taki sposób.

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.